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