From f37155d00ff58b1f9f6dfe54e407b95d4b067491 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Wed, 3 Oct 2018 21:05:19 +0200 Subject: commands: better multi choice prompt to select the target for "bridge configure" --- commands/bridge_configure.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'commands') diff --git a/commands/bridge_configure.go b/commands/bridge_configure.go index f6aa6bfd..4329b54c 100644 --- a/commands/bridge_configure.go +++ b/commands/bridge_configure.go @@ -4,6 +4,7 @@ import ( "bufio" "fmt" "os" + "strconv" "strings" "github.com/MichaelMure/git-bug/bridge" @@ -45,7 +46,10 @@ func promptTarget() (string, error) { targets := bridge.Targets() for { - fmt.Printf("target (%s): ", strings.Join(targets, ",")) + for i, target := range targets { + fmt.Printf("[%d]: %s\n", i+1, target) + } + fmt.Printf("target: ") line, err := bufio.NewReader(os.Stdin).ReadString('\n') if err != nil { @@ -54,13 +58,13 @@ func promptTarget() (string, error) { line = strings.TrimRight(line, "\n") - for _, t := range targets { - if t == line { - return t, nil - } + index, err := strconv.Atoi(line) + if err != nil || index <= 0 || index > len(targets) { + fmt.Println("invalid input") + continue } - fmt.Println("invalid target") + return targets[index-1], nil } } -- cgit