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) }
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) } }
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) }
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) }
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}}`) // // Uncomment to update rkt.bash // stdout.Print("Generating rkt.bash") // cmdRkt.GenBashCompletionFile("dist/bash_completion/rkt.bash") // os.Exit(0) cmdRkt.Execute() os.Exit(cmdExitCode) }
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) }
func init() { multicall.MaybeExec() }