ffmd/examples/single/main.go

51 lines
1.1 KiB
Go

//go:build generate
// +build generate
package main
import (
"flag"
"os"
"time"
"github.com/peterbourgon/ff/v3/ffcli"
"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")
cmd := &ffcli.Command{
Name: "myapp",
FlagSet: fs,
Subcommands: nil,
}
md, err := ffmd.FromCommand(cmd)
if err != nil {
panic(err)
}
write("single.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)
}
}