func offerConfig(c *cli.Context) (*config.MissionControlDetails, error) { exists, err := config.IsMissionControlConfExists() if err != nil { return nil, err } if exists { return nil, nil } val, err := cliutils.GetBoolEnvValue("JFROG_CLI_OFFER_CONFIG", true) if err != nil { return nil, err } if !val { config.SaveMissionControlConf(new(config.MissionControlDetails)) return nil, nil } msg := "The CLI commands require the Mission Control URL and authentication details\n" + "Configuring JFrog CLI with these parameters now will save you having to include them as command options.\n" + "You can also configure these parameters later using the 'config' command.\n" + "Configure now? (y/n): " fmt.Print(msg) var confirm string fmt.Scanln(&confirm) if !cliutils.ConfirmAnswer(confirm) { config.SaveMissionControlConf(new(config.MissionControlDetails)) return nil, nil } details, err := createMissionControlDetails(c, false) if err != nil { return nil, err } return commands.Config(nil, details, true) }
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 ClearConfig() { config.SaveMissionControlConf(new(config.MissionControlDetails)) }