v0.10.2
This commit is contained in:
parent
ff75f4bbcd
commit
9f1f36215a
@ -537,6 +537,12 @@ func logCommandOutput(command *Command, cmdOutBuf bytes.Buffer, cmdCtxLogger zer
|
||||
return outputArr
|
||||
}
|
||||
|
||||
func (c *Command) GetVariablesFromConf(opts *ConfigOpts) {
|
||||
c.ScriptEnvFile = replaceVarInString(opts.Vars, c.ScriptEnvFile, opts.Logger)
|
||||
c.Name = replaceVarInString(opts.Vars, c.Name, opts.Logger)
|
||||
c.OutputFile = replaceVarInString(opts.Vars, c.OutputFile, opts.Logger)
|
||||
}
|
||||
|
||||
// func executeUserCommands() []string {
|
||||
|
||||
// }
|
||||
|
@ -104,7 +104,7 @@ func (opts *ConfigOpts) ReadConfig() *ConfigOpts {
|
||||
backyKoanf := opts.koanf
|
||||
|
||||
if backyKoanf.Exists("variables") {
|
||||
unmarshalConfig(backyKoanf, "variables", &opts.Vars, opts.Logger)
|
||||
unmarshalConfigIntoStruct(backyKoanf, "variables", &opts.Vars, opts.Logger)
|
||||
}
|
||||
|
||||
getConfigDir(opts)
|
||||
@ -131,15 +131,15 @@ func (opts *ConfigOpts) ReadConfig() *ConfigOpts {
|
||||
|
||||
log.Info().Str("config file", opts.ConfigFilePath).Send()
|
||||
|
||||
if err := opts.setupVault(); err != nil {
|
||||
if err := opts.initVault(); err != nil {
|
||||
log.Err(err).Send()
|
||||
}
|
||||
|
||||
unmarshalConfig(backyKoanf, "commands", &opts.Cmds, opts.Logger)
|
||||
unmarshalConfigIntoStruct(backyKoanf, "commands", &opts.Cmds, opts.Logger)
|
||||
|
||||
getCommandEnvironments(opts)
|
||||
|
||||
unmarshalConfig(backyKoanf, "hosts", &opts.Hosts, opts.Logger)
|
||||
unmarshalConfigIntoStruct(backyKoanf, "hosts", &opts.Hosts, opts.Logger)
|
||||
|
||||
resolveHostConfigs(opts)
|
||||
|
||||
@ -163,7 +163,7 @@ func (opts *ConfigOpts) ReadConfig() *ConfigOpts {
|
||||
filterExecuteLists(opts)
|
||||
|
||||
if backyKoanf.Exists("notifications") {
|
||||
unmarshalConfig(backyKoanf, "notifications", &opts.NotificationConf, opts.Logger)
|
||||
unmarshalConfigIntoStruct(backyKoanf, "notifications", &opts.NotificationConf, opts.Logger)
|
||||
}
|
||||
|
||||
opts.SetupNotify()
|
||||
@ -251,7 +251,7 @@ func setupLogger(opts *ConfigOpts) zerolog.Logger {
|
||||
return zerolog.New(writers).With().Timestamp().Logger()
|
||||
}
|
||||
|
||||
func unmarshalConfig(k *koanf.Koanf, key string, target interface{}, log zerolog.Logger) {
|
||||
func unmarshalConfigIntoStruct(k *koanf.Koanf, key string, target interface{}, log zerolog.Logger) {
|
||||
if err := k.UnmarshalWithConf(key, target, koanf.UnmarshalConf{Tag: "yaml"}); err != nil {
|
||||
logging.ExitWithMSG(fmt.Sprintf("error unmarshaling key %s into struct: %v", key, err), 1, &log)
|
||||
}
|
||||
@ -331,7 +331,7 @@ func loadCommandLists(opts *ConfigOpts, backyKoanf *koanf.Koanf) {
|
||||
if backyKoanf.Exists("cmdLists.file") {
|
||||
loadCmdListsFile(backyKoanf, listsConfig, opts)
|
||||
} else {
|
||||
unmarshalConfig(backyKoanf, "cmdLists", &opts.CmdConfigLists, opts.Logger)
|
||||
unmarshalConfigIntoStruct(backyKoanf, "cmdLists", &opts.CmdConfigLists, opts.Logger)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -371,7 +371,7 @@ func loadListConfigFile(filePath string, k *koanf.Koanf, opts *ConfigOpts) bool
|
||||
return false
|
||||
}
|
||||
|
||||
unmarshalConfig(k, "cmdLists", &opts.CmdConfigLists, opts.Logger)
|
||||
unmarshalConfigIntoStruct(k, "cmdLists", &opts.CmdConfigLists, opts.Logger)
|
||||
keyNotSupported("cmd-lists", "cmdLists", k, opts, true)
|
||||
opts.CmdListFile = filePath
|
||||
return true
|
||||
@ -399,7 +399,7 @@ func loadCmdListsFile(backyKoanf *koanf.Koanf, listsConfig *koanf.Koanf, opts *C
|
||||
}
|
||||
|
||||
keyNotSupported("cmd-lists", "cmdLists", listsConfig, opts, true)
|
||||
unmarshalConfig(listsConfig, "cmdLists", &opts.CmdConfigLists, opts.Logger)
|
||||
unmarshalConfigIntoStruct(listsConfig, "cmdLists", &opts.CmdConfigLists, opts.Logger)
|
||||
opts.Logger.Info().Str("using lists config file", opts.CmdListFile).Send()
|
||||
}
|
||||
|
||||
@ -456,7 +456,7 @@ func getLoggingKeyFromConfig(key string) string {
|
||||
// return fmt.Sprintf("cmdLists.%s", list)
|
||||
// }
|
||||
|
||||
func (opts *ConfigOpts) setupVault() error {
|
||||
func (opts *ConfigOpts) initVault() error {
|
||||
if !opts.koanf.Bool("vault.enabled") {
|
||||
return nil
|
||||
}
|
||||
@ -477,7 +477,7 @@ func (opts *ConfigOpts) setupVault() error {
|
||||
token = os.Getenv("VAULT_TOKEN")
|
||||
}
|
||||
if strings.TrimSpace(token) == "" {
|
||||
return fmt.Errorf("no token found, but one was required. \n\nSet the config key vault.token or the environment variable VAULT_TOKEN")
|
||||
return fmt.Errorf("no token found. One is required. \n\nSet the config key vault.token or the environment variable VAULT_TOKEN")
|
||||
}
|
||||
|
||||
client.SetToken(token)
|
||||
@ -489,6 +489,11 @@ func (opts *ConfigOpts) setupVault() error {
|
||||
|
||||
opts.vaultClient = client
|
||||
|
||||
for _, v := range opts.VaultKeys {
|
||||
v.Name = replaceVarInString(opts.Vars, v.Key, opts.Logger)
|
||||
v.MountPath = replaceVarInString(opts.Vars, v.MountPath, opts.Logger)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -728,3 +733,9 @@ func replaceVarInString(vars map[string]string, str string, logger zerolog.Logge
|
||||
}
|
||||
return str
|
||||
}
|
||||
|
||||
func VariadicFunctionParameterTest(allowedKeys ...string) {
|
||||
if contains(allowedKeys, "file") {
|
||||
println("file param included")
|
||||
}
|
||||
}
|
||||
|
@ -278,8 +278,9 @@ type (
|
||||
}
|
||||
|
||||
// use ints so we can use enums
|
||||
CommandType int
|
||||
PackageOperation int
|
||||
CommandType int
|
||||
PackageOperation int
|
||||
AllowedExternalDirectives int
|
||||
)
|
||||
|
||||
//go:generate go run github.com/dmarkham/enumer -linecomment -yaml -text -json -type=CommandType
|
||||
@ -302,3 +303,14 @@ const (
|
||||
PackOpCheckVersion // checkVersion
|
||||
PackOpIsInstalled // isInstalled
|
||||
)
|
||||
|
||||
//go:generate go run github.com/dmarkham/enumer -linecomment -yaml -text -json -type=AllowedExternalDirectives
|
||||
const (
|
||||
DefaultExternalDir AllowedExternalDirectives = iota
|
||||
AllowedExternalDirectiveVault // vault
|
||||
AllowedExternalDirectiveVaultFile // vault-file
|
||||
AllowedExternalDirectiveAll // vault-file-env
|
||||
AllowedExternalDirectiveFileEnv // file-env
|
||||
AllowedExternalDirectiveFile // file
|
||||
AllowedExternalDirectiveEnv // env
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user