|
|
|
@ -53,12 +53,13 @@ func Run(cmd *cobra.Command, args []string) { |
|
|
|
|
prompt := &survey.Select{ |
|
|
|
|
Message: "Which directory do you want to run?", |
|
|
|
|
Options: cmdPaths, |
|
|
|
|
PageSize: 10, |
|
|
|
|
} |
|
|
|
|
e := survey.AskOne(prompt, &dir) |
|
|
|
|
if e != nil || dir == "" { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
dir = path.Join(cmdPath[dir], dir) |
|
|
|
|
dir = cmdPath[dir] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
fd := exec.Command("go", "run", ".") |
|
|
|
@ -72,6 +73,13 @@ func Run(cmd *cobra.Command, args []string) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func findCMD(base string) (map[string]string, error) { |
|
|
|
|
wd, err := os.Getwd() |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
if !strings.HasSuffix(wd, "/") { |
|
|
|
|
wd += "/" |
|
|
|
|
} |
|
|
|
|
var root bool |
|
|
|
|
next := func(dir string) (map[string]string, error) { |
|
|
|
|
cmdPath := make(map[string]string) |
|
|
|
@ -84,7 +92,8 @@ func findCMD(base string) (map[string]string, error) { |
|
|
|
|
} |
|
|
|
|
for _, fileInfo := range paths { |
|
|
|
|
if fileInfo.IsDir() { |
|
|
|
|
cmdPath[path.Join("cmd", fileInfo.Name())] = filepath.Join(walkPath, "..") |
|
|
|
|
abs := path.Join(walkPath, fileInfo.Name()) |
|
|
|
|
cmdPath[strings.TrimPrefix(abs, wd)] = abs |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return nil |
|
|
|
|