Documentation
¶
Index ¶
- Variables
- func BootstrapViper[T workspace_profile.WorkspaceProfile](loader *parse.WorkspaceProfileLoader[T], cmd *cobra.Command, ...)
- func GetConfigPath() ([]string, error)
- func GetWorkspaceProfileLoader[T workspace_profile.WorkspaceProfile]() (*parse.WorkspaceProfileLoader[T], error)
- func SetBaseDefaults(configDefaults map[string]any)
- func SetConfigFromEnv(envVar string, configs []string, varType EnvVarType)
- func SetDefaultFromEnv(k string, configVar string, varType EnvVarType)
- func SetDefaultsFromConfig(configMap map[string]any)
- func SetDefaultsFromEnv(envMappings map[string]EnvMapping)
- func Viper() *viper.Viper
- type BootstrapConfig
- type BootstrapOption
- type CmdBuilder
- func (c *CmdBuilder) AddBoolFlag(name string, defaultValue bool, desc string, opts ...FlagOption) *CmdBuilder
- func (c *CmdBuilder) AddCloudFlags() *CmdBuilder
- func (c *CmdBuilder) AddIntFlag(name string, defaultValue int, desc string, opts ...FlagOption) *CmdBuilder
- func (c *CmdBuilder) AddModLocationFlag() *CmdBuilder
- func (c *CmdBuilder) AddPersistentBoolFlag(name string, defaultValue bool, desc string) *CmdBuilder
- func (c *CmdBuilder) AddPersistentIntFlag(name string, defaultValue int, desc string) *CmdBuilder
- func (c *CmdBuilder) AddPersistentStringArrayFlag(name string, defaultValue []string, desc string) *CmdBuilder
- func (c *CmdBuilder) AddPersistentStringFlag(name string, defaultValue string, desc string) *CmdBuilder
- func (c *CmdBuilder) AddPersistentStringSliceFlag(name string, defaultValue []string, desc string) *CmdBuilder
- func (c *CmdBuilder) AddPersistentVarFlag(value pflag.Value, name string, usage string) *CmdBuilder
- func (c *CmdBuilder) AddStringArrayFlag(name string, defaultValue []string, desc string, opts ...FlagOption) *CmdBuilder
- func (c *CmdBuilder) AddStringFlag(name string, defaultValue string, desc string, opts ...FlagOption) *CmdBuilder
- func (c *CmdBuilder) AddStringMapStringFlag(name string, defaultValue map[string]string, desc string, opts ...FlagOption) *CmdBuilder
- func (c *CmdBuilder) AddStringSliceFlag(name string, defaultValue []string, desc string, opts ...FlagOption) *CmdBuilder
- func (c *CmdBuilder) AddVarFlag(value pflag.Value, name string, usage string, opts ...FlagOption) *CmdBuilder
- type EnvMapping
- type EnvVarType
- type FlagOption
Constants ¶
This section is empty.
Variables ¶
var CustomPostRunHook func(cmd *cobra.Command, args []string) error
var CustomPreRunHook func(cmd *cobra.Command, args []string) error
var FlagOptions = struct { Required func() FlagOption Hidden func() FlagOption Deprecated func(string) FlagOption NoOptDefVal func(string) FlagOption WithShortHand func(string) FlagOption }{ Required: requiredOpt, Hidden: hiddenOpt, Deprecated: deprecatedOpt, NoOptDefVal: noOptDefValOpt, WithShortHand: withShortHand, }
FlagOptions shortcut for common flag options
Functions ¶
func BootstrapViper ¶
func BootstrapViper[T workspace_profile.WorkspaceProfile](loader *parse.WorkspaceProfileLoader[T], cmd *cobra.Command, opts ...BootstrapOption)
BootstrapViper sets up viper with the essential path config (workspace-chdir and install-dir)
func GetConfigPath ¶
GetConfigPath builds a list of possible config file locations, starting with the HIGHEST priority
func GetWorkspaceProfileLoader ¶
func GetWorkspaceProfileLoader[T workspace_profile.WorkspaceProfile]() (*parse.WorkspaceProfileLoader[T], error)
GetWorkspaceProfileLoader creates a WorkspaceProfileLoader which loads the configured workspace
func SetBaseDefaults ¶ added in v1.6.0
for keys which do not have a corresponding command flag, we need a separate defaulting mechanism any option setting, workspace profile property or env var which does not have a command line MUST have a default (unless we want the zero value to take effect)
func SetConfigFromEnv ¶
func SetConfigFromEnv(envVar string, configs []string, varType EnvVarType)
func SetDefaultFromEnv ¶
func SetDefaultFromEnv(k string, configVar string, varType EnvVarType)
func SetDefaultsFromConfig ¶
SetDefaultsFromConfig overrides viper default values from hcl config values
func SetDefaultsFromEnv ¶
func SetDefaultsFromEnv(envMappings map[string]EnvMapping)
Types ¶
type BootstrapConfig ¶ added in v1.6.0
type BootstrapConfig struct { ConfigDefaults map[string]any DirectoryEnvMappings map[string]EnvMapping }
func NewBootstrapConfig ¶ added in v1.6.0
func NewBootstrapConfig() *BootstrapConfig
type BootstrapOption ¶ added in v1.6.0
type BootstrapOption func(*BootstrapConfig)
func WithConfigDefaults ¶
func WithConfigDefaults(configDefaults map[string]any) BootstrapOption
func WithDirectoryEnvMappings ¶
func WithDirectoryEnvMappings(directoryEnvMappings map[string]EnvMapping) BootstrapOption
type CmdBuilder ¶
type CmdBuilder struct {
// contains filtered or unexported fields
}
func OnCmd ¶
func OnCmd(cmd *cobra.Command) *CmdBuilder
OnCmd starts a config builder wrapping over the provided *cobra.Command
func (*CmdBuilder) AddBoolFlag ¶
func (c *CmdBuilder) AddBoolFlag(name string, defaultValue bool, desc string, opts ...FlagOption) *CmdBuilder
AddBoolFlag ia s helper function to add a boolean flag to a command
func (*CmdBuilder) AddCloudFlags ¶
func (c *CmdBuilder) AddCloudFlags() *CmdBuilder
AddCloudFlags is helper function to add the cloud flags to a command
func (*CmdBuilder) AddIntFlag ¶
func (c *CmdBuilder) AddIntFlag(name string, defaultValue int, desc string, opts ...FlagOption) *CmdBuilder
AddIntFlag is a helper function to add an integer flag to a command
func (*CmdBuilder) AddModLocationFlag ¶
func (c *CmdBuilder) AddModLocationFlag() *CmdBuilder
AddModLocationFlag is helper function to add the mod-location flag to a command
func (*CmdBuilder) AddPersistentBoolFlag ¶
func (c *CmdBuilder) AddPersistentBoolFlag(name string, defaultValue bool, desc string) *CmdBuilder
AddPersistentBoolFlag ia s helper function to add a boolean flag to a command
func (*CmdBuilder) AddPersistentIntFlag ¶
func (c *CmdBuilder) AddPersistentIntFlag(name string, defaultValue int, desc string) *CmdBuilder
AddPersistentIntFlag is a helper function to add an integer flag to a command
func (*CmdBuilder) AddPersistentStringArrayFlag ¶
func (c *CmdBuilder) AddPersistentStringArrayFlag(name string, defaultValue []string, desc string) *CmdBuilder
AddPersistentStringArrayFlag is a helper function to add a flag that accepts an array of strings
func (*CmdBuilder) AddPersistentStringFlag ¶
func (c *CmdBuilder) AddPersistentStringFlag(name string, defaultValue string, desc string) *CmdBuilder
AddPersistentStringFlag is a helper function to add a string flag to a command
func (*CmdBuilder) AddPersistentStringSliceFlag ¶
func (c *CmdBuilder) AddPersistentStringSliceFlag(name string, defaultValue []string, desc string) *CmdBuilder
AddPersistentStringSliceFlag is a helper function to add a flag that accepts an array of strings
func (*CmdBuilder) AddPersistentVarFlag ¶
func (c *CmdBuilder) AddPersistentVarFlag(value pflag.Value, name string, usage string) *CmdBuilder
func (*CmdBuilder) AddStringArrayFlag ¶
func (c *CmdBuilder) AddStringArrayFlag(name string, defaultValue []string, desc string, opts ...FlagOption) *CmdBuilder
AddStringArrayFlag is a helper function to add a flag that accepts an array of strings
func (*CmdBuilder) AddStringFlag ¶
func (c *CmdBuilder) AddStringFlag(name string, defaultValue string, desc string, opts ...FlagOption) *CmdBuilder
AddStringFlag is a helper function to add a string flag to a command
func (*CmdBuilder) AddStringMapStringFlag ¶
func (c *CmdBuilder) AddStringMapStringFlag(name string, defaultValue map[string]string, desc string, opts ...FlagOption) *CmdBuilder
AddStringMapStringFlag is a helper function to add a flag that accepts a map of strings
func (*CmdBuilder) AddStringSliceFlag ¶
func (c *CmdBuilder) AddStringSliceFlag(name string, defaultValue []string, desc string, opts ...FlagOption) *CmdBuilder
AddStringSliceFlag is a helper function to add a flag that accepts an array of strings
func (*CmdBuilder) AddVarFlag ¶ added in v0.3.0
func (c *CmdBuilder) AddVarFlag(value pflag.Value, name string, usage string, opts ...FlagOption) *CmdBuilder
type EnvMapping ¶
type EnvMapping struct { ConfigVar []string VarType EnvVarType }
type EnvVarType ¶
type EnvVarType int
const ( EnvVarTypeString EnvVarType = iota EnvVarTypeInt EnvVarTypeBool )
func (EnvVarType) String ¶
func (i EnvVarType) String() string