mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 02:01:43 +03:00
45 lines
848 B
Go
45 lines
848 B
Go
package input
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
func PromptValue(name string, preValue string) (string, error) {
|
|
return promptValue(name, preValue, false)
|
|
}
|
|
|
|
func PromptValueRequired(name string, preValue string) (string, error) {
|
|
return promptValue(name, preValue, true)
|
|
}
|
|
|
|
func promptValue(name string, preValue string, required bool) (string, error) {
|
|
for {
|
|
if preValue != "" {
|
|
_, _ = fmt.Fprintf(os.Stderr, "%s [%s]: ", name, preValue)
|
|
} else {
|
|
_, _ = fmt.Fprintf(os.Stderr, "%s: ", name)
|
|
}
|
|
|
|
line, err := bufio.NewReader(os.Stdin).ReadString('\n')
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
line = strings.TrimSpace(line)
|
|
|
|
if preValue != "" && line == "" {
|
|
return preValue, nil
|
|
}
|
|
|
|
if required && line == "" {
|
|
_, _ = fmt.Fprintf(os.Stderr, "%s is empty\n", name)
|
|
continue
|
|
}
|
|
|
|
return line, nil
|
|
}
|
|
}
|