aboutsummaryrefslogtreecommitdiff
path: root/auth/input.go
diff options
context:
space:
mode:
authorVidhu Kant Sharma <vidhukant@vidhukant.xyz>2022-06-16 13:04:37 +0530
committerVidhu Kant Sharma <vidhukant@vidhukant.xyz>2022-06-16 13:04:37 +0530
commit0c0f4f31f291fd266f86384da4af1a3755c6e588 (patch)
tree0490bfce9f732ca2f6f8b0fc3f5ad2e1f019c982 /auth/input.go
parent1d72b87bca4042d36cea1f1e775803a5252cd224 (diff)
asking to delte client id on logout now. useful if user wants to login agian
Diffstat (limited to 'auth/input.go')
-rw-r--r--auth/input.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/auth/input.go b/auth/input.go
index 9f75fab..aa56f52 100644
--- a/auth/input.go
+++ b/auth/input.go
@@ -22,6 +22,7 @@ import (
"os"
"fmt"
"errors"
+ "strings"
p "github.com/manifoldco/promptui"
)
@@ -55,3 +56,42 @@ func secretInput(label, errMessage string) string {
return res
}
+
+// ask yes/no with no as default
+func confirmInput(label string) bool {
+ validResponses := []string{"y", "yes", "n", "no", ""}
+
+ validate := func(input string) error {
+ lowerInput := strings.ToLower(input)
+ for _, i := range validResponses {
+ if lowerInput == i {
+ return nil
+ }
+ }
+ return errors.New("answer can only be y(es) or n(o)")
+ }
+
+ template := &p.PromptTemplates {
+ Valid: "{{ . | cyan }}",
+ Invalid: "{{ . | cyan }}",
+ Success: "{{ . | blue }}",
+ }
+
+ prompt := p.Prompt {
+ Label: label,
+ Templates: template,
+ Validate: validate,
+ }
+
+ res, err := prompt.Run()
+ if err != nil {
+ fmt.Println("Failed to run confirm prompt.", err.Error(), err)
+ os.Exit(1)
+ }
+
+ if res == "y" || res == "yes" {
+ return true
+ }
+
+ return false
+}