Code-Memo

flag

Basic CLI parsing in the standard library.

String and int
import "flag"

addr := flag.String("addr", ":8080", "listen address")
n := flag.Int("n", 10, "iterations")
flag.Parse()

println(*addr, *n)
Custom types

Implement flag.Value with String() and Set(string) error.

Positional arguments

After flag.Parse(), flag.Args() returns non-flag arguments.

Subcommands

Layout with a switch on os.Args[1] or use spf13/cobra / urfave/cli for larger CLIs.

Environment defaults

Read os.Getenv before flag.Parse and set defaults programmatically.

-h

flag auto-generates usage from names and defaults.