func readActionDefinition(actionName []string, dropped map[string]string, varNum int) (*viper.Viper, map[string]string, error) { if len(actionName) == 0 { logger.Debugf("Fail. actionName, drop, varN =>\t%v:%v:%v\n", actionName, dropped, varNum) return nil, dropped, fmt.Errorf("The marmots could not find the action definition file.\nPlease check your actions with [eris actions ls]") } logger.Debugf("Read action definition file =>\t%s\n", strings.Join(actionName, "_")) logger.Debugf("Args to add to the steps =>\t%s\n", dropped) var actionConf = viper.New() actionConf.AddConfigPath(dir.ActionsPath) actionConf.SetConfigName(strings.Join(actionName, "_")) err := actionConf.ReadInConfig() if err != nil { logger.Debugf("Dropping and retrying =>\t%s\n", actionName[len(actionName)-1]) dropped[fmt.Sprintf("$%d", varNum)] = actionName[len(actionName)-1] actionName = actionName[:len(actionName)-1] varNum++ return readActionDefinition(actionName, dropped, varNum) } else { logger.Debugln("Action definition file successfully read.") } return actionConf, dropped, nil }
func readActionDefinition(actionName []string, dropped map[string]string, varNum int) (*viper.Viper, map[string]string, error) { if len(actionName) == 0 { log.WithFields(log.Fields{ "action": actionName, "drop": dropped, "var#": varNum, }).Debug("Failed to load action definition file") return nil, dropped, fmt.Errorf("The marmots could not find the action definition file.\nPlease check your actions with [eris actions ls]") } log.WithField("file", strings.Join(actionName, "_")).Debug("Preparing to read action definition file") log.WithField("drop", dropped).Debug() var actionConf = viper.New() actionConf.AddConfigPath(dir.ActionsPath) actionConf.SetConfigName(strings.Join(actionName, "_")) err := actionConf.ReadInConfig() if err != nil { log.WithField("action", actionName[len(actionName)-1]).Debug("Dropping and retrying") dropped[fmt.Sprintf("$%d", varNum)] = actionName[len(actionName)-1] actionName = actionName[:len(actionName)-1] varNum++ return readActionDefinition(actionName, dropped, varNum) } else { log.Debug("Successfully read action definition file") } return actionConf, dropped, nil }
func LoadViperConfig(configPath, configName, typ string) (*viper.Viper, error) { var conf = viper.New() conf.AddConfigPath(configPath) conf.SetConfigName(configName) err := conf.ReadInConfig() if err != nil { return nil, fmt.Errorf("Unable to load the %s's config for %s in %s.\nCheck your known %ss with:\neris %ss known", typ, configName, configPath, typ, typ) } return conf, nil }
func SetDefaults() (*viper.Viper, error) { var globalConfig = viper.New() globalConfig.SetDefault("IpfsHost", "http://0.0.0.0") globalConfig.SetDefault("CompilersHost", "https://compilers.eris.industries") return globalConfig, nil }