Subversion Repositories svn.Prod repos

Compare Revisions

Ignore whitespace Rev 26 → Rev 27

/filefind/go/Makefile
0,0 → 1,24
PROGRAM=filefind
SOURCE=$(PROGRAM).go
 
$(PROGRAM): $(SOURCE)
go build $(SOURCE)
 
run: $(PROGRAM)
./$(PROGRAM) .
 
clean:
rm $(PROGRAM)
 
DIR = /var/tmp
 
test: $(SOURCE)
./$(PROGRAM) $(DIR) > result
sort result > result.sort
find $(DIR) > result2
sort result2 > result2.sort
wc *.sort
diff *.sort
 
cleantest:
rm result result.sort result2 result2.sort
/filefind/go/filefind.go
0,0 → 1,55
package main
 
import (
"fmt"
"io/ioutil"
"log"
"os"
)
 
func traverse(s string) {
curdir, err := os.Getwd()
if err := os.Chdir(s); err != nil {
log.Fatal(err)
}
if err != nil {
log.Fatal(err)
}
curdir2, err := os.Getwd()
files, err := ioutil.ReadDir(curdir2)
if err != nil {
log.Fatal(err)
}
for _, f := range files {
fmt.Println (curdir2 + "/" + f.Name())
//fmt.Println(f.Name())
fi, err := os.Stat(f.Name())
if err != nil {
log.Fatal(err)
}
mode := fi.Mode();
if mode.IsDir() {
traverse(fi.Name())
}
}
os.Chdir(curdir)
}
 
func start_traverse(s string) {
fmt.Println(s)
traverse(s)
}
 
func main() {
arg := os.Args[1]
fi, err := os.Stat(arg)
if err != nil {
log.Fatal(err)
}
if fi.IsDir() {
start_traverse(arg)
} else {
fmt.Println("Geen dir")
}
 
}