Perinci::CmdLine is a command-line application framework written in Perl. It access functions using Riap protocol (Perinci::Access) so you get transparent remote access. It utilizes Rinci metadata in the code so the amount of plumbing that you have to do is quite minimal.
What you'll get:
- Command-line parsing (currently using Getopt::Long, with some tweaks)
- Help message (utilizing information from metadata)
- Tab completion for bash (including completion from remote code)
This module uses Log::Any and Log::Any::App for logging.
This module uses Moo for OO.
In your command-line script:
Perinci::CmdLine->new(url => 'Your::Module', ...)->run;
See also the peri-run script which provides a command-line interface for Perinci::CmdLine.