func CLIopts(c *cli.Context, have map[string]Cred, need map[string]string) { for opt := range need { if c.IsSet(opt) { have[opt] = Cred{Value: c.String(opt), From: "command-line"} delete(need, opt) } } }
func ConfigFile(c *cli.Context, have map[string]Cred, need map[string]string) error { var profile string if c.IsSet("profile") { profile = c.String("profile") } else { sections, err := ProfileSections() if err != nil { return err } for _, section := range sections { if section.KeysHash()["enabled"] == "true" { profile = section.Name() } } } section, err := ProfileSection(profile) if err != nil { return err } if section == nil { return nil } for opt := range need { if val := section.Key(opt).String(); val != "" { have[opt] = Cred{Value: val, From: fmt.Sprintf("config file (profile: %s)", section.Name())} delete(need, opt) } } if profile != "" { section, err := ProfileSection("") if err != nil { return err } for opt := range need { if val := section.Key(opt).String(); val != "" { have[opt] = Cred{Value: val, From: fmt.Sprintf("config file (profile: default)")} delete(need, opt) } } } return nil }