當前位置: 首頁>>代碼示例>>Golang>>正文


Golang cli.Context類代碼示例

本文整理匯總了Golang中github.com/JFrogDev/artifactory-cli-go/Godeps/_workspace/src/github.com/codegangsta/cli.Context的典型用法代碼示例。如果您正苦於以下問題:Golang Context類的具體用法?Golang Context怎麽用?Golang Context使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Context類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: download

func download(c *cli.Context) {
	initFlags(c, "download")
	if len(c.Args()) != 1 {
		utils.Exit("Wrong number of arguments. Try 'art download --help'.")
	}
	pattern := c.Args()[0]
	commands.Download(pattern, flags)
}
開發者ID:mlbright,項目名稱:artifactory-cli-go,代碼行數:8,代碼來源:art.go

示例2: config

func config(c *cli.Context) {
	if len(c.Args()) > 1 {
		utils.Exit("Wrong number of arguments. Try 'art config --help'.")
	} else if len(c.Args()) == 1 {
		if c.Args()[0] == "show" {
			commands.ShowConfig()
		} else if c.Args()[0] == "clear" {
			commands.ClearConfig()
		} else {
			utils.Exit("Unknown argument '" + c.Args()[0] + "'. Available arguments are 'show' and 'clear'.")
		}
	} else {
		initFlags(c, "config")
		commands.Config(flags.ArtDetails, flags.Interactive, flags.EncPassword)
	}
}
開發者ID:mlbright,項目名稱:artifactory-cli-go,代碼行數:16,代碼來源:art.go

示例3: getArtifactoryDetails

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
}
開發者ID:shikloshi,項目名稱:artifactory-cli,代碼行數:25,代碼來源:art.go

示例4: upload

func upload(c *cli.Context) {
	initFlags(c, "upload")
	size := len(c.Args())
	if size != 2 {
		utils.Exit("Wrong number of arguments. Try 'art upload --help'.")
	}
	localPath := c.Args()[0]
	targetPath := c.Args()[1]
	commands.Upload(localPath, targetPath, flags)
}
開發者ID:mlbright,項目名稱:artifactory-cli-go,代碼行數:10,代碼來源:art.go

示例5: upload

func upload(c *cli.Context) {
	initFlags(c, "upload")
	size := len(c.Args())
	if size != 2 {
		utils.Exit(utils.ExitCodeError, "Wrong number of arguments. Try 'art upload --help'.")
	}
	localPath := c.Args()[0]
	targetPath := c.Args()[1]
	uploaded, failed := commands.Upload(localPath, targetPath, flags)
	if failed > 0 {
		if uploaded > 0 {
			utils.Exit(utils.ExitCodeWarning, "")
		}
		utils.Exit(utils.ExitCodeError, "")
	}
}
開發者ID:shikloshi,項目名稱:artifactory-cli-go,代碼行數:16,代碼來源:main.go

示例6: getArtifactoryDetails

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
}
開發者ID:mlbright,項目名稱:artifactory-cli-go,代碼行數:23,代碼來源:art.go

示例7: initFlags

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.")
		}
	}
}
開發者ID:mlbright,項目名稱:artifactory-cli-go,代碼行數:83,代碼來源:art.go


注:本文中的github.com/JFrogDev/artifactory-cli-go/Godeps/_workspace/src/github.com/codegangsta/cli.Context類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。