github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/fix/fix_helpers.go (about) 1 package fix 2 3 import ( 4 "fmt" 5 "io/fs" 6 "path/filepath" 7 "strings" 8 9 "github.com/gobuffalo/genny/v2" 10 ) 11 12 func walkDisk(disk *genny.Disk, root string, walkFun filepath.WalkFunc) error { 13 for _, f := range disk.Files() { 14 rel, err := filepath.Rel(root, f.Name()) 15 if err != nil { 16 err = walkFun(f.Name(), nil, fmt.Errorf("cannot process file %s: %w", f.Name(), err)) 17 if err != nil { 18 return err 19 } 20 } 21 22 if strings.HasPrefix(rel, "..") { 23 continue 24 } 25 26 // skip directories that are not part of the buffalo source tree 27 for _, prefix := range []string{"vendor", "node_modules", ".git"} { 28 if strings.HasPrefix(f.Name(), prefix) { 29 return nil 30 } 31 } 32 33 file, ok := f.(fs.File) 34 if !ok { 35 return fmt.Errorf("cannot process file %s: cast failed", f.Name()) 36 } 37 38 info, err := file.Stat() 39 40 err = walkFun(f.Name(), info, err) 41 if err != nil { 42 return err 43 } 44 } 45 46 return nil 47 }