common-cli: CLI framework

What the caller suppose to do?