diff --git a/cli/packages/cmd/login.go b/cli/packages/cmd/login.go index 33945e7e0..51b464b1f 100644 --- a/cli/packages/cmd/login.go +++ b/cli/packages/cmd/login.go @@ -604,11 +604,14 @@ func askForDomain() error { config.INFISICAL_LOGIN_URL = fmt.Sprintf("%s/login", domain) // Write the new domain to the config file, to allow the user to select it in the future if needed - infisicalConfig.Domains = append(infisicalConfig.Domains, domain) - err = util.WriteConfigFile(&infisicalConfig) + // First check if infiscialConfig.Domains already includes the domain, if it does, do not add it again + if !util.ArrayContains(infisicalConfig.Domains, domain) { + infisicalConfig.Domains = append(infisicalConfig.Domains, domain) + err = util.WriteConfigFile(&infisicalConfig) - if err != nil { - return fmt.Errorf("askForDomain: unable to write domains to config file because [err=%s]", err) + if err != nil { + return fmt.Errorf("askForDomain: unable to write domains to config file because [err=%s]", err) + } } return nil diff --git a/cli/packages/util/helper.go b/cli/packages/util/helper.go index 69a310efa..7b4e78806 100644 --- a/cli/packages/util/helper.go +++ b/cli/packages/util/helper.go @@ -298,3 +298,12 @@ func GenerateRandomString(length int) string { } return string(b) } + +func ArrayContains(arr []string, val string) bool { + for _, item := range arr { + if item == val { + return true + } + } + return false +}