This is a preview commit with a terrible commit message.
rework to include descriptions and arg info
Generic argument parsing and usage generation, first pass
Convert devlist to new arg parsing routines.
Implement {io,admin}-passthru commands. (this is a separate commit)
These are mostly compatible with Linux, with three exceptions.
- We don't do metadata segment stuff. Our passthrough interface doesn't cope. The code is there, but generates an error.
- Linux lets you specify a namespace ID for the command. We current do not: we get ours from the namespace device, or pass in a generic one. Generally, this will lead to the same command, but FreeBSD's is safer since you can't specify the wrong id.
- --show-command outputs to stderr instead of stdout so you can both see your command, and capture its output with a simple redirect.