// GetSettings returns a Settings object for the current context func (s FileSettingsRetriever) GetSettings(envName, svcName, accountsHost, authHost, ignoreAuthHostVersion, paasHost, ignorePaasHostVersion, username, password string) *models.Settings { HomeDir, err := homedir.Dir() if err != nil { logrus.Println(err.Error()) os.Exit(1) } file, err := os.Open(filepath.Join(HomeDir, SettingsFile)) if os.IsNotExist(err) { file, err = os.Create(filepath.Join(HomeDir, SettingsFile)) } defer file.Close() if err != nil { logrus.Println(err.Error()) os.Exit(1) } var settings models.Settings json.NewDecoder(file).Decode(&settings) // would be best to default this to an initialized map rather than nil if settings.Environments == nil { settings.Environments = make(map[string]models.AssociatedEnv) } // try and set the given env first, if it exists if envName != "" { setGivenEnv(envName, &settings) if settings.EnvironmentID == "" || settings.ServiceID == "" { logrus.Fatalf("No environment named \"%s\" has been associated. Run \"catalyze associated\" to see what environments have been associated or run \"catalyze associate\" from a local git repo to create a new association", envName) } } // if not given, try default. this is deprecated and will be removed soon if settings.EnvironmentID == "" || settings.ServiceID == "" { setGivenEnv(settings.Default, &settings) } settings.AccountsHost = accountsHost settings.AuthHost = authHost settings.PaasHost = paasHost settings.Username = username settings.Password = password authHostVersion := os.Getenv(AuthHostVersionEnvVar) if authHostVersion == "" { authHostVersion = AuthHostVersion } settings.AuthHostVersion = authHostVersion paasHostVersion := os.Getenv(PaasHostVersionEnvVar) if paasHostVersion == "" { paasHostVersion = PaasHostVersion } settings.PaasHostVersion = paasHostVersion logrus.Debugf("Accounts Host: %s", accountsHost) logrus.Debugf("Auth Host: %s", authHost) logrus.Debugf("Paas Host: %s", paasHost) logrus.Debugf("Auth Host Version: %s", authHostVersion) logrus.Debugf("Paas Host Version: %s", paasHostVersion) logrus.Debugf("Environment ID: %s", settings.EnvironmentID) logrus.Debugf("Environment Name: %s", settings.EnvironmentName) logrus.Debugf("Pod: %s", settings.Pod) logrus.Debugf("Service ID: %s", settings.ServiceID) logrus.Debugf("Org ID: %s", settings.OrgID) settings.Version = VERSION return &settings }