feat: cli app

This commit is contained in:
2025-11-04 19:17:50 +01:00
parent 7d160d5f59
commit 8f5ae15ef0
14 changed files with 357 additions and 94 deletions

View File

@@ -1,17 +1,39 @@
package main
import (
"flag"
"log"
"os"
"github.com/itzg/go-flagsfiller"
)
type cmd struct {
cmd func(any)
cmd func([]string, any)
config any
}
func (c *cmd) Run() {
c.cmd(c.config)
if c.config != nil {
flag.Parse()
filler := flagsfiller.New()
err := filler.Fill(flag.CommandLine, c.config)
if err != nil {
log.Fatal(err)
}
c.cmd(flag.Args()[1:], c.config)
} else {
c.cmd(os.Args[2:], c.config)
}
}
var commands = map[string]cmd{
"config": {
config,
"request": {
request,
nil,
},
"create": {
create,
&createFlags{},
},
}