1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
package context
import (
"fmt"
"github.com/spf13/cobra"
"github.com/hetznercloud/cli/internal/cmd/cmpl"
"github.com/hetznercloud/cli/internal/state"
)
func newDeleteCommand(cli *state.State) *cobra.Command {
cmd := &cobra.Command{
Use: "delete [FLAGS] NAME",
Short: "Delete a context",
Args: cobra.ExactArgs(1),
ValidArgsFunction: cmpl.SuggestArgs(cmpl.SuggestCandidatesF(cli.Config.ContextNames)),
TraverseChildren: true,
DisableFlagsInUseLine: true,
RunE: cli.Wrap(runDelete),
}
return cmd
}
func runDelete(cli *state.State, cmd *cobra.Command, args []string) error {
name := args[0]
context := cli.Config.ContextByName(name)
if context == nil {
return fmt.Errorf("context not found: %v", name)
}
if cli.Config.ActiveContext == context {
cli.Config.ActiveContext = nil
}
cli.Config.RemoveContext(context)
return cli.WriteConfig()
}
|