ffmd/examples/flagset/main.go

45 lines
985 B
Go

//go:build generate
// +build generate
package main
import (
"flag"
"os"
"time"
"go.jolheiser.com/ffmd"
)
//go:generate go run main.go
func main() {
fs := flag.NewFlagSet("myapp", flag.ExitOnError)
fs.String("string-flag", "", "String flag with no default")
fs.String("string-flag-default", "string default", "String flag with default")
fs.Int("int-flag", 0, "Int flag with no default")
fs.Int("int-flag-default", 100, "Int flag with default")
fs.Bool("bool-flag-f", false, "Bool flag false")
fs.Bool("bool-flag-t", true, "Bool flag true")
fs.Duration("duration-flag", 0, "Duration flag with no default")
fs.Duration("duration-flag-default", time.Minute*5, "Duration flag with default")
md, err := ffmd.FromFlagSet(fs)
if err != nil {
panic(err)
}
write("flagset.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)
}
}