12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package input
- import (
- "fmt"
- "path"
- "path/filepath"
- "go-common/app/tool/gorpc/model"
- )
- // Returns all the Golang files for the given path. Ignores hidden files.
- func Files(srcPath string) ([]model.Path, error) {
- srcPath, err := filepath.Abs(srcPath)
- if err != nil {
- return nil, fmt.Errorf("filepath.Abs: %v\n", err)
- }
- if filepath.Ext(srcPath) == "" {
- return dirFiles(srcPath)
- }
- return file(srcPath)
- }
- func dirFiles(srcPath string) ([]model.Path, error) {
- ps, err := filepath.Glob(path.Join(srcPath, "*.go"))
- if err != nil {
- return nil, fmt.Errorf("filepath.Glob: %v\n", err)
- }
- var srcPaths []model.Path
- for _, p := range ps {
- src := model.Path(p)
- if isHiddenFile(p) || src.IsTestPath() {
- continue
- }
- srcPaths = append(srcPaths, src)
- }
- return srcPaths, nil
- }
- func file(srcPath string) ([]model.Path, error) {
- src := model.Path(srcPath)
- if filepath.Ext(srcPath) != ".go" || isHiddenFile(srcPath) || src.IsTestPath() {
- return nil, fmt.Errorf("no Go source files found at %v", srcPath)
- }
- return []model.Path{src}, nil
- }
- func isHiddenFile(path string) bool {
- return []rune(filepath.Base(path))[0] == '.'
- }
|