What I found is that writing a CLI in Rust is a absolute breeze, in part due to excellent documentation and the tooling, and also thanks to various well-maintained crates, such as StructOpt [1] to parse command line arguments of any complexity, or indicatif [2] to show animated progress.
[1] https://github.com/akeru-inc/xcnotary/blob/11649e49892d81754...
[2] https://github.com/akeru-inc/xcnotary/blob/11649e49892d81754...