github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/config.go (about)

     1  package cmdtree
     2  
     3  import (
     4  	"github.com/ActiveState/cli/internal/captain"
     5  	"github.com/ActiveState/cli/internal/locale"
     6  	"github.com/ActiveState/cli/internal/primer"
     7  	"github.com/ActiveState/cli/internal/runners/config"
     8  )
     9  
    10  func newConfigCommand(prime *primer.Values) *captain.Command {
    11  	return captain.NewCommand(
    12  		"config",
    13  		locale.Tl("config_title", "Config"),
    14  		locale.Tl("config_description", "Manage the State Tool configuration"),
    15  		prime,
    16  		[]*captain.Flag{},
    17  		[]*captain.Argument{},
    18  		func(ccmd *captain.Command, _ []string) error {
    19  			runner, err := config.NewConfig(prime)
    20  			if err != nil {
    21  				return err
    22  			}
    23  			return runner.Run(ccmd.Usage)
    24  		}).SetGroup(UtilsGroup).SetSupportsStructuredOutput()
    25  }
    26  
    27  func newConfigGetCommand(prime *primer.Values) *captain.Command {
    28  	params := config.GetParams{}
    29  	return captain.NewCommand(
    30  		"get",
    31  		locale.Tl("config_get_title", "Get config value"),
    32  		locale.Tl("config_get_description", "Print config values to the terminal"),
    33  		prime,
    34  		[]*captain.Flag{},
    35  		[]*captain.Argument{
    36  			{
    37  				Name:        "key",
    38  				Description: locale.Tl("arg_config_get_key", "Config key"),
    39  				Required:    true,
    40  				Value:       &params.Key,
    41  			},
    42  		},
    43  		func(ccmd *captain.Command, args []string) error {
    44  			runner := config.NewGet(prime)
    45  			return runner.Run(params)
    46  		}).SetSupportsStructuredOutput()
    47  }
    48  
    49  func newConfigSetCommand(prime *primer.Values) *captain.Command {
    50  	params := config.SetParams{}
    51  	cmd := captain.NewCommand(
    52  		"set",
    53  		locale.Tl("config_set_title", "Set config value"),
    54  		locale.Tl("config_set_description", "Set config values using the terminal"),
    55  		prime,
    56  		[]*captain.Flag{},
    57  		[]*captain.Argument{
    58  			{
    59  				Name:        "key",
    60  				Description: locale.Tl("arg_config_set_key", "Config key"),
    61  				Required:    true,
    62  				Value:       &params.Key,
    63  			},
    64  			{
    65  				Name:        "value",
    66  				Description: locale.Tl("arg_config_set_value", "Config value"),
    67  				Required:    true,
    68  				Value:       &params.Value,
    69  			},
    70  		},
    71  		func(ccmd *captain.Command, args []string) error {
    72  			runner := config.NewSet(prime)
    73  			return runner.Run(params)
    74  		})
    75  	cmd.SetSkipChecks(true)
    76  	cmd.SetSupportsStructuredOutput()
    77  	return cmd
    78  }