func main() { cli.HelpPrinter = printHelp cli.CommandHelpTemplate = `NAME: {{.Name}} - {{.Usage}}{{if .Description}} DESCRIPTION: {{.Description}}{{end}}{{if .Flags}} OPTIONS: {{range .Flags}}{{flag .}} {{end}}{{ end }} ` app := cli.NewApp() app.Name = "rack" app.Usage = "An opinionated CLI for the Rackspace cloud" app.EnableBashCompletion = true app.Commands = []cli.Command{ { Name: "init", Usage: "[Linux/OS X only] Setup environment with command completion for the Bash shell.", Action: setup.Init, }, { Name: "configure", Usage: "Interactively create a config file for Rackspace authentication.", Action: configure, }, { Name: "servers", Usage: "Operations on cloud servers, both virtual and bare metal.", Subcommands: serverscommands.Get(), }, { Name: "files", Usage: "Object storage for files and media.", Subcommands: filescommands.Get(), }, { Name: "networks", Usage: "Software-defined networking.", Subcommands: networkscommands.Get(), }, { Name: "block-storage", Usage: "Block-level storage, exposed as volumes to mount to host servers. Work with volumes and their associated snapshots.", Subcommands: blockstoragecommands.Get(), }, } app.Flags = util.GlobalFlags() app.BashComplete = func(c *cli.Context) { completeGlobals(globalOptions(app)) } app.Before = func(c *cli.Context) error { //fmt.Printf("c.Args: %+v\n", c.Args()) return nil } app.CommandNotFound = commandNotFound app.Run(os.Args) }
func main() { cli.HelpPrinter = printHelp cli.CommandHelpTemplate = `NAME: {{.Name}} - {{.Usage}}{{if .Description}} DESCRIPTION: {{.Description}}{{end}}{{if .Flags}} OPTIONS: {{range .Flags}}{{flag .}} {{end}}{{ end }} ` app := cli.NewApp() app.Name = "rack" app.Usage = "An opinionated CLI for the Rackspace cloud" app.EnableBashCompletion = true app.Commands = []cli.Command{ { Name: "init", Usage: "Used to setup a user's environment with amenities like command completion for the Bash shell.", Action: setup.Init, }, { Name: "configure", Usage: "Used to interactively create a config file for Rackspace authentication.", Action: configure, }, { Name: "servers", Usage: "Used for the Servers service", Subcommands: serverscommands.Get(), }, { Name: "files", Usage: "Used for the Files service", Subcommands: filescommands.Get(), }, { Name: "networks", Usage: "Used for the Networks service", Subcommands: networkscommands.Get(), }, { Name: "block-storage", Usage: "Used for the Block Storage service", Subcommands: blockstoragecommands.Get(), }, } app.Flags = util.GlobalFlags() app.BashComplete = func(c *cli.Context) { completeGlobals(globalOptions(app)) } app.Before = func(c *cli.Context) error { //fmt.Printf("c.Args: %+v\n", c.Args()) return nil } app.CommandNotFound = commandNotFound app.Run(os.Args) }