completion: NodeRoles for '--role' flag on 'create node'

pull/270/head
iwilltry42 4 years ago
parent 5020259cb5
commit 374d9d16d7
No known key found for this signature in database
GPG Key ID: 7BA57AD1CFF16110
  1. 3
      cmd/create/createNode.go
  2. 14
      cmd/util/completion.go

@ -58,6 +58,9 @@ func NewCmdCreateNode() *cobra.Command {
// add flags
cmd.Flags().Int("replicas", 1, "Number of replicas of this node specification.")
cmd.Flags().String("role", string(k3d.WorkerRole), "Specify node role [master, worker]")
if err := cmd.RegisterFlagCompletionFunc("role", util.ValidArgsNodeRoles); err != nil {
log.Fatalln("Failed to register flag completion for '--role'", err)
}
cmd.Flags().StringP("cluster", "c", k3d.DefaultClusterName, "Select the cluster that the node shall connect to.")
if err := cmd.MarkFlagRequired("cluster"); err != nil {
log.Fatalln("Failed to mark required flag '--cluster'")

@ -81,3 +81,17 @@ nodeLoop:
}
return completions, cobra.ShellCompDirectiveDefault
}
// ValidArgsNodeRoles is used for shell completion: proposes the list of possible node roles
func ValidArgsNodeRoles(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
var completions []string
roles := []string{string(k3d.MasterRole), string(k3d.WorkerRole)}
for _, role := range roles {
if strings.HasPrefix(role, toComplete) {
completions = append(completions, role)
}
}
return completions, cobra.ShellCompDirectiveDefault
}

Loading…
Cancel
Save