handle read errors in promptWithDefault
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user