cli/cmd/test/main.go

78 lines
1.6 KiB
Go
Raw Normal View History

2022-06-16 09:02:24 +03:00
package main
2023-10-23 14:30:51 +03:00
import (
2024-05-15 21:00:26 +03:00
"surdeus.su/core/cli/mtool"
2022-06-16 09:02:24 +03:00
"strconv"
"fmt"
"os"
"strings"
2022-06-16 09:02:24 +03:00
)
2023-10-23 14:30:51 +03:00
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")
2023-11-11 20:40:53 +03:00
args := flags.Parse()
if b {
for i, arg := range args {
args[i] = strings.ToUpper(arg)
}
}
for i:=0 ; i<n ; i++ {
fmt.Println(args)
}
2023-11-11 20:40:53 +03:00
}).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) {
2023-11-11 20:40:53 +03:00
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) {
2023-11-11 20:40:53 +03:00
fmt.Println("called the first", flags.Parse())
}).Desc(
"first sub tool",
),
2023-12-14 21:35:22 +03:00
mtool.T("second").Func(func(flags *mtool.Flags) {
2023-11-11 20:40:53 +03:00
fmt.Println("called the second", flags.Parse())
}).Desc(
"second sub tool",
),
2023-11-10 12:10:16 +03:00
).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.
`)
2022-06-16 09:02:24 +03:00
)
func main() {
root.Run(os.Args[1:])
2022-06-16 09:02:24 +03:00
}