Files
accounting/cmd/invoicer/cmd.go
schreifuchs e5169ee0c4
All checks were successful
Go / build (push) Successful in 38s
feat: better flags
2025-11-04 21:15:05 +01:00

45 lines
606 B
Go

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