77 lines
1.6 KiB
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:])
|
|
}
|