github.com/tonto/cli@v0.0.0-20180104210444-aec958fa47db/walker.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "path/filepath" 7 ) 8 9 // WalkFuncsFunc good name huh? 10 type walkFuncsFunc func(path string, ff *funcfile, err error) error 11 12 // walkFuncs is similar to filepath.Walk except only returns func.yaml's (so on per function) 13 func walkFuncs(root string, walkFn walkFuncsFunc) error { 14 return filepath.Walk(root, func(path string, info os.FileInfo, err error) error { 15 if err != nil { 16 // logging this so we can figure out any common issues 17 fmt.Println("error walking filesystem:", err) 18 return err 19 } 20 // was `path != wd` necessary? 21 if info.IsDir() { 22 return nil 23 } 24 25 if !isFuncfile(path, info) { 26 return nil 27 } 28 29 // TODO: test/try this again to speed up deploys. 30 if false && !isstale(path) { 31 return nil 32 } 33 // Then we found a func file, so let's deploy it: 34 ff, err := parseFuncfile(path) 35 // if err != nil { 36 // return err 37 // } 38 return walkFn(path, ff, err) 39 }) 40 }