The Go standard library flag way of doing things has long been a source of frustration while implementing and maintaining the urfave/cli library. Many alternate parsers exist, including:
In addition to these other implementations, I also got some help via this oldie and the Go standard library parser.
- get a better understanding of the whole problem space
- support both POSIX-y and Windows-y styles
- build a printable/JSON-able parse tree
- support rich error reporting
- support event-like reactive parsing