本文整理汇总了Golang中github.com/simonleung8/flags.NewFlagContext函数的典型用法代码示例。如果您正苦于以下问题:Golang NewFlagContext函数的具体用法?Golang NewFlagContext怎么用?Golang NewFlagContext使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewFlagContext函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: RunCommandMoreBetter
func RunCommandMoreBetter(cmdName string, args []string, requirementsFactory *testreq.FakeReqFactory, updateFunc func(bool), pluginCall bool) (result RunCommandResult) {
updateFunc(pluginCall)
cmd := command_registry.Commands.FindCommand(cmdName)
context := flags.NewFlagContext(cmd.MetaData().Flags)
context.SkipFlagParsing(cmd.MetaData().SkipFlagParsing)
err := context.Parse(args...)
if err != nil {
fmt.Println("ERROR:", err)
return RunCommandResultFailed
}
defer func() {
errMsg := recover()
if errMsg != nil && errMsg != testterm.QuietPanic {
panic(errMsg)
}
result = RunCommandResultFailed
}()
requirements, err := cmd.Requirements(requirementsFactory, context)
if err != nil {
return RunCommandResultRequirementsFailed
}
for _, requirement := range requirements {
if !requirement.Execute() {
return RunCommandResultRequirementsFailed
}
}
cmd.Execute(context)
return RunCommandResultSuccess
}
开发者ID:0976254669,项目名称:cli,代码行数:35,代码来源:runner.go
示例2: RunCliCommandWithoutDependency
func RunCliCommandWithoutDependency(cmdName string, args []string, requirementsFactory *testreq.FakeReqFactory) (passedRequirements bool) {
cmd := command_registry.Commands.FindCommand(cmdName)
context := flags.NewFlagContext(cmd.MetaData().Flags)
context.SkipFlagParsing(cmd.MetaData().SkipFlagParsing)
err := context.Parse(args...)
if err != nil {
fmt.Println("ERROR:", err)
os.Exit(1)
}
defer func() {
errMsg := recover()
if errMsg != nil && errMsg != testterm.QuietPanic {
panic(errMsg)
}
}()
requirements, err := cmd.Requirements(requirementsFactory, context)
if err != nil {
return false
}
for _, requirement := range requirements {
if !requirement.Execute() {
return false
}
}
passedRequirements = true
cmd.Execute(context)
return
}
开发者ID:0976254669,项目名称:cli,代码行数:34,代码来源:runner.go
示例3: Command
func (c *nonCodegangstaRunner) Command(args []string, deps command_registry.Dependency, pluginApiCall bool) error {
var err error
cmdRegistry := command_registry.Commands
if cmdRegistry.CommandExists(args[0]) {
fc := flags.NewFlagContext(cmdRegistry.FindCommand(args[0]).MetaData().Flags)
err = fc.Parse(args[1:]...)
if err != nil {
return err
}
cfCmd := cmdRegistry.FindCommand(args[0])
cfCmd = cfCmd.SetDependency(deps, pluginApiCall)
reqs, err := cfCmd.Requirements(requirements.NewFactory(deps.Ui, deps.Config, deps.RepoLocator), fc)
if err != nil {
return err
}
for _, r := range reqs {
if !r.Execute() {
return errors.New("Error in requirement")
}
}
cfCmd.Execute(fc)
}
return nil
}
开发者ID:Doebe,项目名称:workplace,代码行数:31,代码来源:call_command_registry.go
示例4: CommandUsage
func (r *registry) CommandUsage(cmdName string) string {
output := ""
cmd := r.FindCommand(cmdName)
output = T("NAME") + ":" + "\n"
output += " " + cmd.MetaData().Name + " - " + cmd.MetaData().Description + "\n\n"
output += T("USAGE") + ":" + "\n"
output += " " + strings.Replace(cmd.MetaData().Usage, "CF_NAME", cf.Name(), -1) + "\n"
if cmd.MetaData().ShortName != "" {
output += "\n" + T("ALIAS") + ":" + "\n"
output += " " + cmd.MetaData().ShortName + "\n"
}
if cmd.MetaData().Flags != nil {
output += "\n" + T("OPTIONS") + ":" + "\n"
output += flags.NewFlagContext(cmd.MetaData().Flags).ShowUsage(3)
}
return output
}
开发者ID:0976254669,项目名称:cli,代码行数:22,代码来源:registry.go
示例5: RunCliCommand
func RunCliCommand(cmdName string, args []string, requirementsFactory *testreq.FakeReqFactory, updateFunc func(bool), pluginCall bool) (passedRequirements bool) {
if cf.Version == "" {
cf.Version = "6.13.0+abc123"
}
updateFunc(pluginCall)
cmd := command_registry.Commands.FindCommand(cmdName)
context := flags.NewFlagContext(cmd.MetaData().Flags)
context.SkipFlagParsing(cmd.MetaData().SkipFlagParsing)
err := context.Parse(args...)
if err != nil {
fmt.Println("ERROR:", err)
os.Exit(1)
}
defer func() {
errMsg := recover()
if errMsg != nil && errMsg != testterm.QuietPanic {
panic(errMsg)
}
}()
requirements, err := cmd.Requirements(requirementsFactory, context)
if err != nil {
return false
}
for _, requirement := range requirements {
if !requirement.Execute() {
return false
}
}
passedRequirements = true
cmd.Execute(context)
return
}
开发者ID:seetharamireddy540,项目名称:cli,代码行数:38,代码来源:runner.go
示例6:
spaceRepo = &testapi.FakeSpaceRepository{}
deps := command_registry.Dependency{}
repoLocator := deps.RepoLocator
repoLocator = repoLocator.SetUserRepository(userRepo)
repoLocator = repoLocator.SetSpaceRepository(spaceRepo)
deps.Ui = ui
deps.Config = configRepo
deps.RepoLocator = repoLocator
cmd = &user.SetSpaceRole{}
cmd.SetDependency(deps, false)
requirementsFactory = &testreq.FakeReqFactory{}
flagContext = flags.NewFlagContext(map[string]flags.FlagSet{})
})
Describe("Requirements", func() {
Context("when not provided exactly four args", func() {
BeforeEach(func() {
flagContext.Parse("the-username", "the-org-name", "the-space-name")
})
It("fails with usage", func() {
Expect(func() { cmd.Requirements(requirementsFactory, flagContext) }).To(Panic())
Expect(ui.Outputs).To(ContainSubstrings(
[]string{"Incorrect Usage. Requires USERNAME, ORG, SPACE, ROLE as arguments"},
[]string{"NAME"},
[]string{"USAGE"},
))
开发者ID:evanfarrar,项目名称:cli,代码行数:31,代码来源:set_space_role_test.go
示例7:
BeforeEach(func() {
ui = &testterm.FakeUI{}
configRepo = testconfig.NewRepositoryWithDefaults()
routeRepo = &fakeapi.FakeRouteRepository{}
repoLocator := deps.RepoLocator.SetRouteRepository(routeRepo)
deps = command_registry.Dependency{
Ui: ui,
Config: configRepo,
RepoLocator: repoLocator,
}
cmd = route.CreateRoute{}
cmd.SetDependency(deps, false)
flagContext = flags.NewFlagContext(cmd.MetaData().Flags)
factory = &fakerequirements.FakeFactory{}
spaceRequirement = &fakerequirements.FakeSpaceRequirement{}
space := models.Space{}
space.Guid = "space-guid"
space.Name = "space-name"
spaceRequirement.GetSpaceReturns(space)
factory.NewSpaceRequirementReturns(spaceRequirement)
domainRequirement = &fakerequirements.FakeDomainRequirement{}
domainRequirement.GetDomainReturns(models.DomainFields{
Guid: "domain-guid",
Name: "domain-name",
})
开发者ID:juanpaulo,项目名称:cli,代码行数:31,代码来源:create_route_test.go
示例8: main
func main() {
commands_loader.Load()
defer handlePanics(deps.TeePrinter)
defer deps.Config.Close()
//handles `cf` | `cf -h` || `cf -help`
if len(os.Args) == 1 || os.Args[1] == "--help" || os.Args[1] == "-help" ||
os.Args[1] == "--h" || os.Args[1] == "-h" {
help.ShowHelp(help.GetHelpTemplate())
os.Exit(0)
}
//handle `cf -v` for cf version
if len(os.Args) == 2 && (os.Args[1] == "-v" || os.Args[1] == "--version") {
deps.Ui.Say(os.Args[0] + " version " + cf.Version + "-" + cf.BuiltOnDate)
os.Exit(0)
}
//handle `cf --build`
if len(os.Args) == 2 && (os.Args[1] == "--build" || os.Args[1] == "-b") {
deps.Ui.Say(T("{{.CFName}} was built with Go version: {{.GoVersion}}",
map[string]interface{}{
"CFName": os.Args[0],
"GoVersion": runtime.Version(),
}))
os.Exit(0)
}
//handles `cf [COMMAND] -h ...`
//rearrage args to `cf help COMMAND` and let `command help` to print out usage
if requestHelp(os.Args[2:]) {
os.Args[2] = os.Args[1]
os.Args[1] = "help"
}
//run core command
cmd := os.Args[1]
if cmdRegistry.CommandExists(cmd) {
meta := cmdRegistry.FindCommand(os.Args[1]).MetaData()
fc := flags.NewFlagContext(meta.Flags)
fc.SkipFlagParsing(meta.SkipFlagParsing)
err := fc.Parse(os.Args[2:]...)
if err != nil {
deps.Ui.Failed("Incorrect Usage\n\n" + err.Error() + "\n\n" + cmdRegistry.CommandUsage(cmd))
}
cmdRegistry.SetCommand(cmdRegistry.FindCommand(cmd).SetDependency(deps, false))
cfCmd := cmdRegistry.FindCommand(cmd)
reqs, err := cfCmd.Requirements(requirements.NewFactory(deps.Ui, deps.Config, deps.RepoLocator), fc)
if err != nil {
deps.Ui.Failed(err.Error())
}
for _, r := range reqs {
if !r.Execute() {
os.Exit(1)
}
}
cfCmd.Execute(fc)
os.Exit(0)
}
//non core command, try plugin command
rpcService := newCliRpcServer(deps.TeePrinter, deps.TeePrinter)
pluginsConfig := plugin_config.NewPluginConfig(func(err error) { deps.Ui.Failed(fmt.Sprintf("Error read/writing plugin config: %s, ", err.Error())) })
pluginList := pluginsConfig.Plugins()
ran := rpc.RunMethodIfExists(rpcService, os.Args[1:], pluginList)
if !ran {
deps.Ui.Say("'" + os.Args[1] + T("' is not a registered command. See 'cf help'"))
os.Exit(1)
}
}
开发者ID:0976254669,项目名称:cli,代码行数:80,代码来源:main.go
注:本文中的github.com/simonleung8/flags.NewFlagContext函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论