cli/cmd/test/main.go

77 lines
1.6 KiB
Go

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:])
}