Changes for version 1.17 - 2014-07-23
- REMOVED FEATURES
- Remove scripts strip-result-env-* (users can use 'jq' or other tools to do this).
- Move script peri-run to Perinci-CmdLine-Any.
- Remove --action (see note in the Incompatible Changes section about the change in the way command-line options are parsed).
- Move examples/ to Perinci-CmdLine-Examples, to help reduce dependencies.
- INCOMPATIBLE CHANGES
- To reduce confusion and make things simpler, change the way command-line options are parsed. Argument options which happen to clash with common options (e.g. --help, --version) are now renamed to --help-arg (or --help-arg2 and so on) so no options clash with each other. Thus, --action is no longer needed.
- INTERNAL
- Refactoring: split some functionality to Perinci::CmdLine::Base (in separate dist) for creating Perinci::CmdLine::Lite, a lightweight alternative that doesn't use Moo, Perinci::Access, nor Perinci::Result::Format. There are now Perinci-CmdLine and Perinci-CmdLine-Lite distributions.
- Refactoring: run() and run_*() now returns enveloped response instead of int. All output is now returned as string by run_*() instead of printed directly (except for streaming output).
- Refactoring: No long uses internal attributes like $self->{_subcommand}. Instead, now a per-request (per-run()) stash/hash $r is passed around. This is not unlike the technique used in Apache handlers and Data::Sah. It's cleaner because the per-request state is isolated from the object itself.
- Refactoring: help-generating methods now separated into a separate role (Perinci::CmdLine::Role::Help), just to be more organized.
- DOCUMENTATION
- Split some documentation (FAQ) from Perinci::CmdLine to Perinci::CmdLine::Manual and split to Perinci-CmdLine-Base so it can be installed without requiring too many dependencies.
- Write examples Perinci::CmdLine::Manual::Examples.
Documentation
Display command-line usage of a Riap function
Modules
Rinci/Riap-based command-line application framework
Default color themes
Help-related routines