claptrap opts lib: very small, much features, getoptish

https://sr.ht/~ser/claptrap/

Every few months, when I start a new CLI, I spend a good amount of time looking around for a flags library. For trivial programs, the stdlib `flag` library is OK, but it breaks `getopt` arguments style, the undisputed most popular arguments standard for POSIXy OSes, in the world. And there are a wealth of alternative flags libraries available, some quite good, but I am inevitably unsatisfied with them for usually one of three reasons:

Over time, I'd built up some tooling to evaluate lib tools; I've posted that, and the analysis, here, and I focused this time on clapper, which seemed to fit the bill. There were a couple of small features I wanted, and I sent in a couple of patches, but after one particularly engaging hacking session I ended up with a drastic rewrite that maintained and expanded the feature set while preserving the small size and general `getopts` compatability. At this point, it was a different library, so I rebranded it and Claptrap was born.

here

clapper

Claptrap is a small but powerful Go package to parse command-line arguments

*getopt(3) style*

And it's 455 lines of code, and **0** dependencies.