Example #1
0
func initFlags(c *cli.Context, cmd string) {
	if c.String("recursive") == "" {
		flags.Recursive = true
	} else {
		flags.Recursive = c.Bool("recursive")
	}
	if c.String("interactive") == "" {
		flags.Interactive = true
	} else {
		flags.Interactive = c.Bool("interactive")
	}
	if c.String("enc-password") == "" {
		flags.EncPassword = true
	} else {
		flags.EncPassword = c.Bool("enc-password")
	}

	if cmd == "config" {
		flags.ArtDetails = getArtifactoryDetails(c, false)
		if !flags.Interactive && flags.ArtDetails.Url == "" {
			utils.Exit("The --url option is mandatory when the --interactive option is set to false")
		}
	} else {
		flags.ArtDetails = getArtifactoryDetails(c, true)
		if flags.ArtDetails.Url == "" {
			utils.Exit("The --url option is mandatory")
		}
	}

	strFlat := c.String("flat")
	if cmd == "upload" {
		if strFlat == "" {
			flags.Flat = true
		} else {
			flags.Flat, _ = strconv.ParseBool(strFlat)
		}
	} else {
		if strFlat == "" {
			flags.Flat = false
		} else {
			flags.Flat, _ = strconv.ParseBool(strFlat)
		}
	}

	flags.Deb = c.String("deb")
	if flags.Deb != "" && len(strings.Split(flags.Deb, "/")) != 3 {
		utils.Exit("The --deb option should be in the form of distribution/component/architecture")
	}
	flags.Props = c.String("props")
	flags.DryRun = c.Bool("dry-run")
	flags.UseRegExp = c.Bool("regexp")
	var err error
	if c.String("threads") == "" {
		flags.Threads = 3
	} else {
		flags.Threads, err = strconv.Atoi(c.String("threads"))
		if err != nil || flags.Threads < 1 {
			utils.Exit("The '--threads' option should have a numeric positive value.")
		}
	}
	if c.String("min-split") == "" {
		flags.MinSplitSize = 5120
	} else {
		flags.MinSplitSize, err = strconv.ParseInt(c.String("min-split"), 10, 64)
		if err != nil {
			utils.Exit("The '--min-split' option should have a numeric value. Try 'art download --help'.")
		}
	}
	if c.String("split-count") == "" {
		flags.SplitCount = 3
	} else {
		flags.SplitCount, err = strconv.Atoi(c.String("split-count"))
		if err != nil {
			utils.Exit("The '--split-count' option should have a numeric value. Try 'art download --help'.")
		}
		if flags.SplitCount > 15 {
			utils.Exit("The '--split-count' option value is limitted to a maximum of 15.")
		}
		if flags.SplitCount < 0 {
			utils.Exit("The '--split-count' option cannot have a negative value.")
		}
	}
}