func Config(details, defaultDetails *config.BintrayDetails, interactive bool) (*config.BintrayDetails, error) { if details == nil { details = new(config.BintrayDetails) } if interactive { if defaultDetails == nil { var err error defaultDetails, err = config.ReadBintrayConf() if err != nil { return nil, err } } if details.User == "" { ioutils.ScanFromConsole("User", &details.User, defaultDetails.User) } if details.Key == "" { print("Key: ") byteKey, err := terminal.ReadPassword(int(syscall.Stdin)) err = cliutils.CheckError(err) if err != nil { return nil, err } details.Key = string(byteKey) if details.Key == "" { details.Key = defaultDetails.Key } } if details.DefPackageLicenses == "" { ioutils.ScanFromConsole("\nDefault package licenses", &details.DefPackageLicenses, defaultDetails.DefPackageLicenses) } } config.SaveBintrayConf(details) return details, nil }
func Config(details, defaultDetails *config.MissionControlDetails, interactive bool) (conf *config.MissionControlDetails, err error) { conf = details if conf == nil { conf = new(config.MissionControlDetails) } if interactive { if defaultDetails == nil { defaultDetails, err = config.ReadMissionControlConf() if err != nil { return } } if conf.Url == "" { ioutils.ScanFromConsole("Mission Control URL", &conf.Url, defaultDetails.Url) var u *url.URL u, err = url.Parse(conf.Url) err = cliutils.CheckError(err) if err != nil { return } if u.Scheme != "http" && u.Scheme != "https" { err = cliutils.CheckError(errors.New("URL scheme is not valid " + u.Scheme)) if err != nil { return } } } ioutils.ReadCredentialsFromConsole(conf, defaultDetails) } conf.Url = cliutils.AddTrailingSlashIfNeeded(conf.Url) config.SaveMissionControlConf(conf) return }
func Config(details, defaultDetails *config.ArtifactoryDetails, interactive, shouldEncPassword bool) (*config.ArtifactoryDetails, error) { if details == nil { details = new(config.ArtifactoryDetails) } var err error if interactive { if defaultDetails == nil { defaultDetails, err = config.ReadArtifactoryConf() if err != nil { return nil, err } } if details.Url == "" { ioutils.ScanFromConsole("Artifactory URL", &details.Url, defaultDetails.Url) } if strings.Index(details.Url, "ssh://") == 0 || strings.Index(details.Url, "SSH://") == 0 { err = readSshKeyPathFromConsole(details, defaultDetails) if err != nil { return nil, err } } else { if details.ApiKey == "" && details.Password == "" { ioutils.ScanFromConsole("API key (leave empty for basic authentication)", &details.ApiKey, "") } if details.ApiKey == "" { ioutils.ReadCredentialsFromConsole(details, defaultDetails) } } } err = checkSingleAuthMethod(details) if err != nil { return nil, err } details.Url = cliutils.AddTrailingSlashIfNeeded(details.Url) if shouldEncPassword { details, err = encryptPassword(details) if err != nil { return nil, err } } config.SaveArtifactoryConf(details) 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 }