stash/vendor/github.com/gobuffalo/gogen/files.go

37 lines
712 B
Go

package gogen
import (
"os"
"path/filepath"
"strings"
"github.com/pkg/errors"
)
func GoFiles(dir string) ([]string, error) {
var files []string
pwd, err := os.Getwd()
if err != nil {
return files, errors.WithStack(err)
}
if dir == "" {
dir = pwd
}
err = filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
path = strings.TrimPrefix(path, pwd+"/")
if strings.Contains(path, ".git") || strings.Contains(path, "node_modules") || strings.Contains(path, "vendor"+string(os.PathSeparator)) {
if info.IsDir() {
return filepath.SkipDir
}
return nil
}
if filepath.Ext(path) == ".go" {
files = append(files, path)
}
return nil
})
return files, nil
}