59 lines
1019 B
Go
59 lines
1019 B
Go
package helpers
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// YesOrNoInput
|
|
func YesOrNoInput() bool {
|
|
|
|
var userInput string
|
|
for {
|
|
|
|
_, err := fmt.Scanf("%s", &userInput)
|
|
if err != nil {
|
|
log.Infof("failed to read input, try again (%s)", err.Error())
|
|
continue
|
|
}
|
|
|
|
lUserInput := strings.ToLower(userInput)
|
|
|
|
for _, positiveAnswer := range []string{"yes", "y", "1", "true"} {
|
|
if lUserInput == positiveAnswer {
|
|
return true
|
|
}
|
|
}
|
|
for _, negativeAnswer := range []string{"no", "n", "0", "false"} {
|
|
if lUserInput == negativeAnswer {
|
|
return false
|
|
}
|
|
}
|
|
|
|
log.Info("Expecting a yes or no answer, Try again")
|
|
}
|
|
}
|
|
|
|
// IsValidPathInput
|
|
func IsValidPathInput() string {
|
|
var userInput string
|
|
for {
|
|
|
|
_, err := fmt.Scanf("%s", &userInput)
|
|
if err != nil {
|
|
log.Infof("failed to read input, try again (%s)", err.Error())
|
|
continue
|
|
}
|
|
|
|
err = CheckAndCreateDir(userInput)
|
|
if err != nil {
|
|
log.Warnf("please, try again")
|
|
continue
|
|
}
|
|
|
|
return userInput
|
|
}
|
|
}
|