func main() { cli.SetUsageStyle(cli.ManualStyle) // up-down, for left-right, use NormalStyle //NOTE: You can set any writer implements io.Writer // default writer is os.Stdout if err := app.RunWith(os.Args[1:], os.Stderr, nil); err != nil { fmt.Printf("%v\n", err) } }
func main() { cli.SetUsageStyle(cli.ManualStyle) // up-down, for left-right, use NormalStyle //NOTE: You can set any writer implements io.Writer // default writer is os.Stdout if err := cli.Root(root, cli.Tree(buildCmd), cli.Tree(installCmd), cli.Tree(publishCmd)).Run(os.Args[1:]); err != nil { fmt.Fprintln(os.Stderr, err) } fmt.Println("") }
func main() { cli.SetUsageStyle(cli.ManualStyle) cli.Run(new(argT), func(ctx *cli.Context) error { argv := ctx.Argv().(*argT) if argv.Help { ctx.WriteUsage() return nil } prefix := fmt.Sprintf("%s:%d> ", argv.Host, argv.Port) FOR_READ: for { line, err := prompt.Basic(prefix, false) if err != nil { return err } line = strings.TrimSpace(line) if line == "" { continue } var ( index = strings.Index(line, " ") cmd = line ) if index >= 0 { cmd = line[:index] } cmd = strings.ToUpper(cmd) switch cmd { case "QUIT", "EXIT": break FOR_READ case "SELECT": err = query(ctx, cmd, line, argv) default: err = execute(ctx, cmd, line, argv) } if err != nil { ctx.String("%s %v\n", ctx.Color().Red("ERR!"), err) } } ctx.String("bye~\n") return nil }) }