ffmd/examples/alias/main.go

49 lines
1.0 KiB
Go

//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)
}
}