handle read errors in promptWithDefault

This commit is contained in:
2026-03-04 21:22:01 +00:00
parent 5a58be10c8
commit fd9aeece00
2 changed files with 17 additions and 6 deletions
+10 -2
View File
@@ -199,7 +199,11 @@ func addCmd(args []string) error {
} }
if pkgName == "" { if pkgName == "" {
pkgName = promptWithDefault("Package name", defaultPkg) var err error
pkgName, err = promptWithDefault("Package name", defaultPkg)
if err != nil {
return err
}
if pkgName == "" { if pkgName == "" {
return errors.New("package name cannot be empty") return errors.New("package name cannot be empty")
} }
@@ -207,7 +211,11 @@ func addCmd(args []string) error {
targetRootInput := defaultTarget targetRootInput := defaultTarget
if pkgName != matchedPkg || matchedPkg == "" { 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)) targetRoot, err := filepath.Abs(expandHome(targetRootInput))
if err != nil { if err != nil {
+7 -4
View File
@@ -43,7 +43,7 @@ func newReader() *bufio.Reader {
return stdinReader return stdinReader
} }
func promptWithDefault(label, def string) string { func promptWithDefault(label, def string) (string, error) {
reader := newReader() reader := newReader()
if def != "" { if def != "" {
fmt.Printf("%s [%s]: ", label, def) fmt.Printf("%s [%s]: ", label, def)
@@ -51,12 +51,15 @@ func promptWithDefault(label, def string) string {
fmt.Printf("%s: ", label) fmt.Printf("%s: ", label)
} }
text, _ := reader.ReadString('\n') text, err := reader.ReadString('\n')
if err != nil {
return "", err
}
text = strings.TrimSpace(text) text = strings.TrimSpace(text)
if text == "" { if text == "" {
return def return def, nil
} }
return text return text, nil
} }
func promptYesNo(message string, def bool) (bool, error) { func promptYesNo(message string, def bool) (bool, error) {