Skip to content

Commit 0dfa47b

Browse files
authored
refactor: Use go-survey instead of promptui (#61)
* refactor: Use go-survey instead of promptui * fix: Provide default value for workspace select
1 parent 6f0f350 commit 0dfa47b

File tree

3 files changed

+30
-25
lines changed

3 files changed

+30
-25
lines changed

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ require (
2222
)
2323

2424
require (
25-
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect
2625
github.com/creack/pty v1.1.9 // indirect
2726
github.com/davecgh/go-spew v1.1.1 // indirect
2827
github.com/fatih/color v1.9.0 // indirect
@@ -35,7 +34,6 @@ require (
3534
github.com/kr/text v0.2.0 // indirect
3635
github.com/magefile/mage v1.10.0 // indirect
3736
github.com/magiconair/properties v1.8.3 // indirect
38-
github.com/manifoldco/promptui v0.9.0 // indirect
3937
github.com/mattn/go-colorable v0.1.7 // indirect
4038
github.com/mattn/go-isatty v0.0.12 // indirect
4139
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect

go.sum

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJm
3232
github.com/briandowns/spinner v1.11.1 h1:OixPqDEcX3juo5AjQZAnFPbeUA0jvkp2qzB5gOZJ/L0=
3333
github.com/briandowns/spinner v1.11.1/go.mod h1:QOuQk7x+EaDASo80FEXwlwiA+j/PPIcX3FScO+3/ZPQ=
3434
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
35-
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
36-
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=
37-
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
38-
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
3935
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
4036
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
4137
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -164,8 +160,6 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP
164160
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
165161
github.com/magiconair/properties v1.8.3 h1:kJSsc6EXkBLgr3SphHk9w5mtjn0bjlR4JYEXKrJ45rQ=
166162
github.com/magiconair/properties v1.8.3/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
167-
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
168-
github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=
169163
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
170164
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
171165
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
@@ -344,7 +338,6 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h
344338
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
345339
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
346340
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
347-
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
348341
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
349342
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
350343
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

pkg/cmd/workspace_use.go

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package cmd
22

33
import (
4-
"github.com/manifoldco/promptui"
4+
"github.com/AlecAivazis/survey/v2"
55
"github.com/spf13/cobra"
66

7+
"github.com/hookdeck/hookdeck-cli/pkg/hookdeck"
78
"github.com/hookdeck/hookdeck-cli/pkg/validators"
89
"github.com/hookdeck/hookdeck-cli/pkg/workspace"
910
)
@@ -37,28 +38,41 @@ func (lc *workspaceUseCmd) runWorkspaceUseCmd(cmd *cobra.Command, args []string)
3738
return err
3839
}
3940

40-
selectedTemplate := "Selecting workspace {{ .Name | green }}"
41-
if lc.local {
42-
selectedTemplate = "Pinning workspace {{ .Name | green }} to current directory"
41+
var currentWorkspaceName string
42+
workspaceNames := make([]string, len(workspaces))
43+
for index, workspace := range workspaces {
44+
workspaceNames[index] = workspace.Name
45+
if workspace.Id == Config.Profile.TeamID {
46+
currentWorkspaceName = workspace.Name
47+
}
4348
}
4449

45-
templates := &promptui.SelectTemplates{
46-
Active: "▸ {{ .Name | green }}",
47-
Inactive: " {{ .Name }}",
48-
Selected: selectedTemplate,
50+
var qs = []*survey.Question{
51+
{
52+
Name: "workspace_name",
53+
Prompt: &survey.Select{
54+
Message: "Select Workspace",
55+
Options: workspaceNames,
56+
Default: currentWorkspaceName,
57+
},
58+
Validate: survey.Required,
59+
},
4960
}
5061

51-
prompt := promptui.Select{
52-
Label: "Select Workspace",
53-
Items: workspaces,
54-
Templates: templates,
55-
}
62+
answers := struct {
63+
WorkspaceName string `survey:"workspace_name"`
64+
}{}
5665

57-
i, _, err := prompt.Run()
58-
if err != nil {
66+
if err = survey.Ask(qs, &answers); err != nil {
5967
return err
6068
}
6169

62-
workspace := workspaces[i]
70+
var workspace hookdeck.Workspace
71+
for _, tempWorkspace := range workspaces {
72+
if answers.WorkspaceName == tempWorkspace.Name {
73+
workspace = tempWorkspace
74+
}
75+
}
76+
6377
return Config.UseWorkspace(lc.local, workspace.Id, workspace.Mode)
6478
}

0 commit comments

Comments
 (0)