本文整理汇总了Golang中github.com/coreos/rkt/pkg/multicall.MaybeExec函数的典型用法代码示例。如果您正苦于以下问题:Golang MaybeExec函数的具体用法?Golang MaybeExec怎么用?Golang MaybeExec使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MaybeExec函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
multicall.Add("acbuild-script", func() error {
cmd := exec.Command("acbuild", append([]string{"script"}, os.Args[1:]...)...)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
})
// check if acbuild is executed with a multicall command
multicall.MaybeExec()
cmdAcbuild.SetUsageFunc(func(cmd *cobra.Command) error {
tabOut := new(tabwriter.Writer)
tabOut.Init(os.Stdout, 0, 8, 1, '\t', 0)
commandUsageTemplate.Execute(tabOut, cmd)
tabOut.Flush()
return nil
})
// Make help just show the usage
cmdAcbuild.SetHelpTemplate(`{{.UsageString}}`)
err := cmdAcbuild.Execute()
if cmdExitCode == 0 && err != nil {
cmdExitCode = getErrorCode(errCobra)
}
os.Exit(cmdExitCode)
}
示例2: main
func main() {
// rkt (whom we adopt code from) uses this weird architecture where a
// function can be registered under a certain name, and then the said
// function can be invoked in a separate process, by calling the original
// program again with the name under which the said function was registered
// with.
// For instance, if a function is registered with the name "extracttar",
// then the function can be invoked by using os/exec to run
// `acb extracttar`
multicall.MaybeExec()
app := cli.NewApp()
app.Name = name
app.Usage = usage
app.Version = version
app.Commands = []cli.Command{
newCommand, // note that it's new vs init because it conflicts with libcontainer factory's expectations
// that calls os.Args[0] "init"
execCommand,
addCommand,
rmCommand,
renderCommand,
}
if err := app.Run(os.Args); err != nil {
log.Fatal(err)
}
}
示例3: main
func main() {
// check if rkt is executed with a multicall command
multicall.MaybeExec()
cmdRkt.SetUsageFunc(usageFunc)
// Make help just show the usage
cmdRkt.SetHelpTemplate(`{{.UsageString}}`)
cmdRkt.Execute()
os.Exit(cmdExitCode)
}
示例4: main
func main() {
// check if rkt is executed with a multicall command
multicall.MaybeExec()
cmdRkt.SetUsageFunc(usageFunc)
// Make help just show the usage
cmdRkt.SetHelpTemplate(`{{.UsageString}}`)
if err := cmdRkt.Execute(); err != nil && cmdExitCode == 0 {
// err already printed by cobra on stderr
cmdExitCode = 2 // invalid argument
}
os.Exit(cmdExitCode)
}
示例5: main
func main() {
// check if acbuild is executed with a multicall command
multicall.MaybeExec()
cmdAcbuild.SetUsageFunc(func(cmd *cobra.Command) error {
tabOut := new(tabwriter.Writer)
tabOut.Init(os.Stdout, 0, 8, 1, '\t', 0)
commandUsageTemplate.Execute(tabOut, cmd)
tabOut.Flush()
return nil
})
// Make help just show the usage
cmdAcbuild.SetHelpTemplate(`{{.UsageString}}`)
err := cmdAcbuild.Execute()
if cmdExitCode == 0 && err != nil {
cmdExitCode = getErrorCode(errCobra)
}
os.Exit(cmdExitCode)
}