예제 #1
0
func Config(details *utils.ArtifactoryDetails, interactive, shouldEncPassword bool) {
	var bytePassword []byte
	if interactive {
		if details.Url == "" {
			print("Artifactory Url: ")
			fmt.Scanln(&details.Url)
		}
		if details.User == "" {
			print("User: "******"" {
			print("Password: ")
			var err error
			bytePassword, err = terminal.ReadPassword(int(syscall.Stdin))
			details.Password = string(bytePassword)
			utils.CheckError(err)
		}
	}
	details.Url = utils.AddTrailingSlashIfNeeded(details.Url)
	if shouldEncPassword {
		details = encryptPassword(details)
	}
	writeConfFile(details)
}
예제 #2
0
func getArtifactoryDetails(c *cli.Context, includeConfig bool) *utils.ArtifactoryDetails {
	details := new(utils.ArtifactoryDetails)
	details.Url = c.String("url")
	details.User = c.String("user")
	details.Password = c.String("password")

	if includeConfig {
		if details.Url == "" || details.User == "" || details.Password == "" {
			confDetails := commands.GetConfig()
			if details.Url == "" {
				details.Url = confDetails.Url
			}
			if details.User == "" {
				details.User = confDetails.User
			}
			if details.Password == "" {
				details.Password = confDetails.Password
			}
		}
	}
	if details.Url != "" && !strings.HasSuffix(details.Url, "/") {
		details.Url += "/"
	}
	return details
}
예제 #3
0
func encryptPassword(details *utils.ArtifactoryDetails) *utils.ArtifactoryDetails {
	if details.Password == "" {
		return details
	}
	response, encPassword := utils.GetEncryptedPasswordFromArtifactory(details)
	switch response.StatusCode {
	case 409:
		utils.Exit(utils.ExitCodeError, "\nYour Artifactory server is not configured to encrypt passwords.\n"+
			"You may use \"art config --enc-password=false\"")
	case 200:
		details.Password = encPassword
	default:
		utils.Exit(utils.ExitCodeError, "\nArtifactory response: "+response.Status)
	}
	return details
}
예제 #4
0
func getArtifactoryDetails(c *cli.Context, includeConfig bool) *utils.ArtifactoryDetails {
	details := new(utils.ArtifactoryDetails)
	details.Url = c.String("url")
	details.User = c.String("user")
	details.Password = c.String("password")

	if includeConfig {
		if details.Url == "" || details.User == "" || details.Password == "" {
			confDetails := commands.GetConfig()
			if details.Url == "" {
				details.Url = confDetails.Url
			}
			if details.User == "" {
				details.User = confDetails.User
			}
			if details.Password == "" {
				details.Password = confDetails.Password
			}
		}
	}
	details.Url = utils.AddTrailingSlashIfNeeded(details.Url)
	return details
}