1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package main
- import (
- "surdeus.su/core/cli/mtool"
- "strconv"
- "fmt"
- "os"
- "strings"
- )
- var (
- root = mtool.T("test").Subs(
- mtool.T("echo").Func(func(flags *mtool.Flags) {
- var (
- b bool
- n int
- )
- flags.BoolVar(&b, "u", false, "convert to uppercase", "UPPERCASE")
- flags.IntVar(&n, "n", 1, `
- amount of times to print
- and long long desc to check things
- `,
- "NUMPRINT", "NUMPRINT1")
- args := flags.Parse()
- if b {
- for i, arg := range args {
- args[i] = strings.ToUpper(arg)
- }
- }
- for i:=0 ; i<n ; i++ {
- fmt.Println(args)
- }
- }).Desc(
- "print string array to standard output",
- ).Usage(
- "[str1 str2 ... strN]",
- ).Ldesc(`
- Some long description for the echo program
- to check how this shit works.
- `),
- mtool.T("sum").Func(func(flags *mtool.Flags) {
- args := flags.Parse()
- one, _ := strconv.Atoi(args[0])
- two, _ := strconv.Atoi(args[1])
- fmt.Println(one + two)
- }).Desc(
- "add one value to another",
- ).Usage(
- "<int1> <int2>",
- ),
- mtool.T("sub").Subs(
- mtool.T("first").Func(func(flags *mtool.Flags) {
- fmt.Println("called the first", flags.Parse())
- }).Desc(
- "first sub tool",
- ),
- mtool.T("second").Func(func(flags *mtool.Flags) {
- fmt.Println("called the second", flags.Parse())
- }).Desc(
- "second sub tool",
- ),
- ).Desc(
- "the tool to demonstrate how subtools work",
- ),
- ).Desc(
- "the testing program to show how to use the lib",
- ).Ldesc(`
- This is the long description where you
- can put anything you want about the program.
- `)
- )
- func main() {
- root.Run(os.Args[1:])
- }
|