//go:build generate // +build generate package main import ( "flag" "github.com/peterbourgon/ff/v3/ffcli" "os" "go.jolheiser.com/ffmd" ) //go:generate go run main.go func main() { fs := flag.NewFlagSet("myapp", flag.ExitOnError) stringFlag := fs.String("string-flag", "", "String flag") fs.StringVar(stringFlag, "sf", *stringFlag, "--string-flag") intFlag := fs.Int("int-flag", 0, "Int flag") fs.IntVar(intFlag, "if", *intFlag, "--int-flag") boolFlag := fs.Bool("bool-flag", false, "Bool flag") fs.BoolVar(boolFlag, "bf", *boolFlag, "--bool-flag") durFlag := fs.Duration("duration-flag", 0, "Duration flag") fs.DurationVar(durFlag, "df", *durFlag, "--duration-flag") cmd := &ffcli.Command{ Name: "myapp", FlagSet: fs, Subcommands: nil, } md, err := ffmd.Command(cmd) if err != nil { panic(err) } write("README.md", md) } func write(path, content string) { fi, err := os.Create(path) if err != nil { panic(err) } defer fi.Close() if _, err := fi.WriteString(content); err != nil { panic(err) } }