diff --git a/main.go b/main.go index 991b9ea..e4e6e57 100644 --- a/main.go +++ b/main.go @@ -468,6 +468,37 @@ func selectFiles(files []File, input string) []File { return result } +func runCmds(cmds []*exec.Cmd) { + for _, cmd := range cmds { + fmt.Printf("<----->\nCommand: %s\n<----->\n", cmd) + + stdout, _ := cmd.StdoutPipe() + scanner := bufio.NewScanner(stdout) + + err := cmd.Start() + if err != nil { + fmt.Printf("%+v\n", err) + } + + for scanner.Scan() { + out := fmt.Sprintf("%q", scanner.Text()) + out = strings.Trim(out, "\"") + out = strings.ReplaceAll(out, `\u00a0`, " ") + + if out != "" { + fmt.Print("\r") + fmt.Print(out) + } else { + fmt.Print("\n") + } + } + } + + for _, cmd := range cmds { + cmd.Wait() + } +} + func runShell(ctx *cli.Context, action string) error { directory := strings.TrimSuffix(ctx.String(flagDirectory), "/") name := ctx.String(flagName) @@ -499,32 +530,7 @@ func runShell(ctx *cli.Context, action string) error { cmds = generateDownloadCmds(result, directory) } - for _, cmd := range cmds { - stdout, _ := cmd.StdoutPipe() - scanner := bufio.NewScanner(stdout) - - err := cmd.Start() - if err != nil { - fmt.Printf("%+v\n", err) - } - - for scanner.Scan() { - out := fmt.Sprintf("%q", scanner.Text()) - out = strings.Trim(out, "\"") - out = strings.ReplaceAll(out, `\u00a0`, " ") - - if out != "" { - fmt.Print("\r") - fmt.Print(out) - } else { - fmt.Print("\n") - } - } - } - - for _, cmd := range cmds { - cmd.Wait() - } + runCmds(cmds) return nil }