Rev 27 | Rev 38 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 27 | Rev 28 | ||
---|---|---|---|
- | 1 | //usr/bin/env go run $0 $@; exit $? |
|
1 | package main |
2 | package main |
2 | 3 | ||
3 | import ( |
4 | import ( |
4 | "fmt" |
5 | "fmt" |
5 | "io/ioutil" |
6 | "io/ioutil" |
6 | "log" |
7 | "log" |
7 | "os" |
8 | "os" |
8 | ) |
9 | ) |
9 | 10 | ||
- | 11 | // ============================================================================= |
|
- | 12 | // Functions |
|
- | 13 | // ============================================================================= |
|
- | 14 | ||
10 | func traverse(s string) { |
15 | func traverse(s string) { |
11 | curdir, err := os.Getwd() |
16 | curdir, err := os.Getwd() |
12 | if err := os.Chdir(s); err != nil { |
17 | if err := os.Chdir(s); err != nil { |
13 | log.Fatal(err) |
18 | log.Fatal(err) |
14 | } |
19 | } |
15 | if err != nil { |
20 | if err != nil { |
16 | log.Fatal(err) |
21 | log.Fatal(err) |
17 | } |
22 | } |
18 | curdir2, err := os.Getwd() |
23 | curdir2, err := os.Getwd() |
19 | files, err := ioutil.ReadDir(curdir2) |
24 | files, err := ioutil.ReadDir(curdir2) |
20 | if err != nil { |
25 | if err != nil { |
21 | log.Fatal(err) |
26 | log.Fatal(err) |
22 | } |
27 | } |
23 | for _, f := range files { |
28 | for _, f := range files { |
24 | fmt.Println (curdir2 + "/" + f.Name()) |
29 | fmt.Println (curdir2 + "/" + f.Name()) |
25 | //fmt.Println(f.Name()) |
30 | //fmt.Println(f.Name()) |
26 | fi, err := os.Stat(f.Name()) |
31 | fi, err := os.Stat(f.Name()) |
27 | if err != nil { |
32 | if err != nil { |
28 | log.Fatal(err) |
33 | log.Fatal(err) |
29 | } |
34 | } |
30 | mode := fi.Mode(); |
35 | mode := fi.Mode(); |
31 | if mode.IsDir() { |
36 | if mode.IsDir() { |
32 | traverse(fi.Name()) |
37 | traverse(fi.Name()) |
33 | } |
38 | } |
34 | } |
39 | } |
35 | os.Chdir(curdir) |
40 | os.Chdir(curdir) |
36 | } |
41 | } |
37 | 42 | ||
38 | func start_traverse(s string) { |
43 | func start_traverse(s string) { |
39 | fmt.Println(s) |
44 | fmt.Println(s) |
40 | traverse(s) |
45 | traverse(s) |
41 | } |
46 | } |
42 | 47 | ||
- | 48 | // ============================================================================= |
|
- | 49 | // MAIN |
|
- | 50 | // ============================================================================= |
|
- | 51 | ||
43 | func main() { |
52 | func main() { |
- | 53 | if len(os.Args) < 2 { |
|
- | 54 | log.Fatal("Give a directory as argument") |
|
- | 55 | } |
|
44 | arg := os.Args[1] |
56 | arg := os.Args[1] |
45 | fi, err := os.Stat(arg) |
57 | fi, err := os.Stat(arg) |
46 | if err != nil { |
58 | if err != nil { |
47 | log.Fatal(err) |
59 | log.Fatal(err) |
48 | } |
60 | } |
49 | if fi.IsDir() { |
61 | if fi.IsDir() { |
50 | start_traverse(arg) |
62 | start_traverse(arg) |
51 | } else { |
63 | } else { |
52 | fmt.Println("Geen dir") |
64 | fmt.Println("Geen dir") |
53 | } |
65 | } |
54 | 66 | ||
55 | } |
67 | } |