You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/cmd/commands/config/autocomplete.go

62 lines
1.2 KiB

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package config
import (
"fmt"
"github.com/hashicorp/boundary/internal/cmd/base"
"github.com/mitchellh/cli"
)
var _ cli.Command = (*Command)(nil)
type AutocompleteCommand struct {
*base.Command
Func string
}
func (c *AutocompleteCommand) Synopsis() string {
verb := "Install"
switch c.Func {
case "uninstall":
verb = "Uninstall"
case "base":
verb = "Install or uninstall"
}
return fmt.Sprintf("%s autocompletion for Boundary's CLI", verb)
}
func (c *AutocompleteCommand) Help() string {
verb := "installs"
switch c.Func {
case "uninstall":
verb = "uninstalls"
case "base":
verb = "installs or uninstalls"
}
subcmd := ""
switch c.Func {
case "uninstall":
subcmd = " uninstall"
case "install":
subcmd = " install"
}
return base.WrapForHelpText([]string{
fmt.Sprintf("Usage: boundary config autocomplete%s [options] [args]", subcmd),
"",
fmt.Sprintf(" This command %s autocompletion support for Boundary's CLI", verb),
})
}
func (c *AutocompleteCommand) Run(args []string) int {
if len(args) > 0 {
return cli.RunResultHelp
}
return base.CommandSuccess
}