From 76fd7cfeb4ad21aef4ca101ccf61af4356ab2302 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Sat, 9 Dec 2023 22:15:40 +0100 Subject: [PATCH] Allow default value for boolean select Default for both service delete conformation and disabling Maloja autofix is now "no". --- cmd/service_delete.go | 5 ++++- internal/backends/maloja/maloja.go | 7 ++++--- internal/cli/prompt.go | 13 +++++++++---- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/cmd/service_delete.go b/cmd/service_delete.go index 519e9b6..1d5c0ba 100644 --- a/cmd/service_delete.go +++ b/cmd/service_delete.go @@ -38,7 +38,10 @@ var serviceDeleteCmd = &cobra.Command{ cobra.CheckErr(err) // Prompt for deletion - delete, err := cli.PromptYesNo(i18n.Tr("Delete the service configuration \"%v\"?", service)) + delete, err := cli.PromptYesNo( + i18n.Tr("Delete the service configuration \"%v\"?", service), + false, + ) cobra.CheckErr(err) if !delete { diff --git a/internal/backends/maloja/maloja.go b/internal/backends/maloja/maloja.go index 8057200..9c91115 100644 --- a/internal/backends/maloja/maloja.go +++ b/internal/backends/maloja/maloja.go @@ -44,9 +44,10 @@ func (b *MalojaApiBackend) Options() []models.BackendOption { Label: i18n.Tr("Access token"), Type: models.Secret, }, { - Name: "nofix", - Label: i18n.Tr("Disable auto correction of submitted listens"), - Type: models.Bool, + Name: "nofix", + Label: i18n.Tr("Disable auto correction of submitted listens"), + Type: models.Bool, + Default: "false", }} } diff --git a/internal/cli/prompt.go b/internal/cli/prompt.go index 9a4ba70..fd0676d 100644 --- a/internal/cli/prompt.go +++ b/internal/cli/prompt.go @@ -60,15 +60,20 @@ func PromptSecret(opt models.BackendOption) (string, error) { } func PromptBool(opt models.BackendOption) (bool, error) { - return PromptYesNo(opt.Label) + return PromptYesNo(opt.Label, opt.Default == "true") } -func PromptYesNo(label string) (bool, error) { +func PromptYesNo(label string, defaultValue bool) (bool, error) { yes := i18n.Tr("Yes") no := i18n.Tr("No") + selected := 1 + if defaultValue { + selected = 0 + } sel := promptui.Select{ - Label: label, - Items: []string{yes, no}, + Label: label, + Items: []string{yes, no}, + CursorPos: selected, } _, val, err := sel.Run() return val == yes, err