func createArtifactoryDetails(c *cli.Context, includeConfig bool) (*config.ArtifactoryDetails, error) { if includeConfig { details, err := offerConfig(c) if err != nil { return nil, err } if details != nil { return details, nil } } details := new(config.ArtifactoryDetails) details.Url = c.String("url") details.ApiKey = c.String("apikey") details.User = c.String("user") details.Password = c.String("password") details.SshKeyPath = c.String("ssh-key-path") if includeConfig { confDetails, err := commands.GetConfig() if err != nil { return nil, err } if details.Url == "" { details.Url = confDetails.Url } if !isAuthMethodSet(details) { if details.ApiKey == "" { details.ApiKey = confDetails.ApiKey } if details.User == "" { details.User = confDetails.User } if details.Password == "" { details.Password = confDetails.Password } if details.SshKeyPath == "" { details.SshKeyPath = confDetails.SshKeyPath } } } details.Url = cliutils.AddTrailingSlashIfNeeded(details.Url) return details, nil }
func readSshKeyPathFromConsole(details, savedDetails *config.ArtifactoryDetails) error { if details.SshKeyPath == "" { ioutils.ScanFromConsole("SSH key file path", &details.SshKeyPath, savedDetails.SshKeyPath) } details.SshKeyPath = cliutils.ReplaceTildeWithUserHome(details.SshKeyPath) exists, err := ioutils.IsFileExists(details.SshKeyPath) if err != nil { return err } if !exists { log.Warn("Could not find SSH key file at:", details.SshKeyPath) } return nil }