in cobra/controller/configure.go [147:191]
func configureCreateCredentials(cmd *cobra.Command, mode string) error {
created, err := aid.HasCreatedAppDir(cmd)
if err != nil {
return err
}
if created {
var creds model.Credentials
if mode == "interactive" {
creds = view.CreateCredentials(cmd, profile, model.Credentials{})
} else if mode == "non-interactive" {
c := aid.GetCredentialProfileFlags(cmd)
creds.Profiles = append(creds.Profiles, c)
}
return dao.SaveCredentials(creds)
}
creds, err := dao.GetCredentials()
if err != nil {
logrus.Fatalf("unable to get credentials\n%v", err)
}
found := false
for _, p := range creds.Profiles {
if p.Name == profile {
found = true
}
}
if found {
// don't add duplicates
return fmt.Errorf("profile %s already exist\nprofile names must be unique", profile)
}
// append new cred to credentials file
if mode == "interactive" {
creds = view.CreateCredentials(cmd, profile, creds)
} else if mode == "non-interactive" {
c := aid.GetCredentialProfileFlags(cmd)
creds.Profiles = append(creds.Profiles, c)
}
return dao.SaveCredentials(creds)
}