diff --git a/main.go b/main.go index ef06235..695576c 100644 --- a/main.go +++ b/main.go @@ -199,7 +199,11 @@ func addCmd(args []string) error { } if pkgName == "" { - pkgName = promptWithDefault("Package name", defaultPkg) + var err error + pkgName, err = promptWithDefault("Package name", defaultPkg) + if err != nil { + return err + } if pkgName == "" { return errors.New("package name cannot be empty") } @@ -207,7 +211,11 @@ func addCmd(args []string) error { targetRootInput := defaultTarget if pkgName != matchedPkg || matchedPkg == "" { - targetRootInput = promptWithDefault("Target path", defaultTarget) + var err error + targetRootInput, err = promptWithDefault("Target path", defaultTarget) + if err != nil { + return err + } } targetRoot, err := filepath.Abs(expandHome(targetRootInput)) if err != nil { diff --git a/util.go b/util.go index 3a8a03f..07500cb 100644 --- a/util.go +++ b/util.go @@ -43,7 +43,7 @@ func newReader() *bufio.Reader { return stdinReader } -func promptWithDefault(label, def string) string { +func promptWithDefault(label, def string) (string, error) { reader := newReader() if def != "" { fmt.Printf("%s [%s]: ", label, def) @@ -51,12 +51,15 @@ func promptWithDefault(label, def string) string { fmt.Printf("%s: ", label) } - text, _ := reader.ReadString('\n') + text, err := reader.ReadString('\n') + if err != nil { + return "", err + } text = strings.TrimSpace(text) if text == "" { - return def + return def, nil } - return text + return text, nil } func promptYesNo(message string, def bool) (bool, error) {