github.com/icyphox/x@v0.0.355-0.20220311094250-029bd783e8b8/tools/listx/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "path/filepath" 7 "strings" 8 9 "github.com/ory/x/cmdx" 10 ) 11 12 func main() { 13 args := os.Args 14 if len(args) != 2 { 15 cmdx.Fatalf("Expects exactly one input parameter") 16 } 17 err := filepath.Walk(args[1], func(path string, info os.FileInfo, err error) error { 18 if err != nil { 19 return err 20 } 21 22 if info.IsDir() { 23 return nil 24 } 25 26 if strings.Contains(path, "vendor") { 27 return nil 28 } 29 30 if filepath.Ext(path) == ".go" { 31 p, err := filepath.Abs(filepath.Join(args[1], path)) 32 if err != nil { 33 return err 34 } 35 fmt.Println(p) 36 } 37 38 return nil 39 }) 40 41 cmdx.Must(err, "%s", err) 42 }