flagBasic CLI parsing in the standard library.
import "flag"
addr := flag.String("addr", ":8080", "listen address")
n := flag.Int("n", 10, "iterations")
flag.Parse()
println(*addr, *n)
Implement flag.Value with String() and Set(string) error.
After flag.Parse(), flag.Args() returns non-flag arguments.
Layout with a switch on os.Args[1] or use spf13/cobra / urfave/cli for larger CLIs.
Read os.Getenv before flag.Parse and set defaults programmatically.
-hflag auto-generates usage from names and defaults.