Revision history for Perinci-CmdLine
1.10 2014-05-17 (SHARYANTO)
- [ux] Default to 80 (and not wider) column width when displaying
--help --verbose, unless user sets COLUMNS.
- Replace File::Slurp with File::Slurp::Tiny.
1.09 2014-04-30 (SHARYANTO)
- No functional changes.
- Adjust to Perinci::Access::Perl 0.66 (no longer has
'extra_wrapper_args').
1.08 2014-04-16 (SHARYANTO)
- Show release date in --version.
1.07 2014-04-16 (SHARYANTO)
- Send argv to server when parsing argv on the client side returns 502
(see Perinci::Sub::GetArgs::Argv for more details on this error).
This feature currently does not work with transaction and dry-run.
Also, the server side must have a recent Perinci::Access::Perl (0.64)
which supports accepting 'argv' request key for its 'call' action.
1.06 2014-04-04 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- [refactor/internal] Rename action 'subcommand' to 'call' because it's
less confusing and more appropriate. Since --action is
underdocumented, this should break very few users.
1.05 2014-04-02 (SHARYANTO)
- Consult Perinci::Sub::Property::* on unknown properties when
generating help. This allows displaying help for result/table or
result/object Rinci function metadata property. See corresponding
Perinci::Sub::Property::result::{table,object} module for more
details.
1.04 2014-04-01 (SHARYANTO)
- Add common options: --json, --yaml, --perl. But only when user says
'use Perinci::CmdLine 1.04'.
1.03 2014-03-29 (SHARYANTO)
- Bugfix: Don't print 'missing foo arg' when on --help, --history, etc.
1.02 2014-02-26 (SHARYANTO)
- No functional changes.
- Adjust to Progress::Any 0.13 and
Progress::Any::Output::TermProgressBarColor 0.08.
1.01 2014-01-21 (SHARYANTO)
[BUG FIXES]
- A couple of fixes in parsing cmdline options for argument with
cmdline_src 'stdin_or_files': avoid printing 'missing arg X' when
getting argument value from STDIN, and parse '--arg F1' properly (it
used to get from STDIN instead of F1).
1.00 2013-12-18 (SHARYANTO)
- No, there's nothing special about the version number.
- Skip setlocale() at the start of program, as Locale::TextDomain
(Locale::Messages) already reads from LANG/LANGUAGE. Programs
requiring setlocale() can do it themselves.
0.99 2013-12-13 (SHARYANTO)
- No functional changes. Mark more strings as translateable using
Locale::TextDomain.
0.98 2013-12-13 (SHARYANTO)
- No functional changes. Use Locale::TextDomain::UTF8.
0.97 2013-12-13 (SHARYANTO)
- No functional changes. Switch from Locale::Maketext to
Locale::TextDomain.
0.96 2013-11-26 (SHARYANTO)
- Slightly reduce completion overhead.
- Bugfix: Skip non-shell src examples.
0.95 2013-11-08 (SHARYANTO)
[ENHANCEMENTS]
- Fix behavior of 'cmdline_src': now supports 'file' (Rinci 1.1.41),
'stdin_or_files' now correctly reads from files specified in cmdline
argument, now supports giving lines to function argument of type
'array'.
0.94 2013-10-04 (SHARYANTO)
[ENHANCEMENTS]
- Display src examples (Rinci 1.1.39).
[ETC]
- Adjust to Perinci::Access::Perl 0.53+ (remove disk caching options).
- Adjust to Perinci::Sub::Complete (replaces Perinci::BashComplete).
0.93 2013-10-04 (SHARYANTO)
- No functional changes. Force version of SHARYANTO::Role::ColorTheme
so color_theme_class_prefix can be overriden by subclasses.
0.92 2013-10-03 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Change common option: --list (-l) to --subcommands to make it more
obvious.
[ENHANCEMENTS]
- Reduce startup overhead by caching wrapping result
(Perinci::Access::Perl 0.50 supports disk_cache option).
- More tweaks on --help (as well as --subcommands output).
- Observe PERINCI_CMDLINE_COLOR_THEME.
- Colorize error messages, help, and --subcommands output.
[DOCUMENTATION]
- Document how utf8 output and logging output is turned on/off.
- Add French translation. More translations welcome.
- Show list of (popular) subcommands in help message.
0.91 2013-10-02 (SHARYANTO)
- This release focuses on making help message prettier: colors,
sorting, some tweaks/fixes. Details below. Formatting is now done
using Text::ANSITable. Producing help now causes a slight noticeable
delay (like 0.3-0.4s) on my PC/laptop, but since it is not annoying
enough or invoked frequently enough on a daily basis, it'll do for
now.
[ENHANCEMENTS]
- Generate colored help message, yay.
- Provide two versions of help: compact and verbose (--help --verbose).
The purpose of compact help is to be short and rarely exceed one
screen: it only displays usage, examples, and list of options (no
documentation on each option). The normal help is now the verbose
help.
- Show examples in help message.
- Show function description in verbose help message.
- Don't show 'name - summary' line in help message if summary is not
specified.
- To save a bit of screen space, don't list --help and --version in
compact help message, since they are already obvious from the usage
section.
- Observe 'x.perinci.cmdline.negative_summary' Rinci metadata
attribute. If there is a bool option with default=1 (e.g. --public,
with summary 'Only show public items') the help message now displays
'--nopublic' since --public is implicit. The summary should
accordingly be the negative summary (e.g. 'Only show private items').
This can now be put in said attribute. It can also be localized (e.g.
'x.perinci.cmdline.negative_summary.alt.lang.id_ID').
- Add examples/demo-help which contains various options to show how
--help and '--help --verbose' would display it.
- For "simple" actions like 'help', 'list', 'version', logging is
turned off by default to reduce startup overhead. However, you can
still turn on logging via LOG=1.
0.90 2013-09-23 (SHARYANTO)
- Add 'args' subcommand specification to prefill function arguments
when calling (useful for function that serves multiple subcommands).
- Show positional arguments in usage message.
0.89 2013-09-20 (SHARYANTO)
- No functional changes. Force upgrade of deps to show previous error
(Rinci 1.1.38).
0.88 2013-09-11 (SHARYANTO)
- No functional changes. Demote Perinci::Tx::Manager from
RuntimeRequires to RuntimeRecommends because not all applications use
it and it currently does not install on Windows (some deps like
File::Lock, which deps on Data::Structure::Util, does not build).
- Now builds on Windows, yay.
0.87 2013-09-08 (SHARYANTO)
[REMOVED FEATURES]
- Remove 'dash_to_underscore' option because it is currently rather
confusing. If you specify subcommands using underscores, -l will list
the underscored version but tab completion is using the dashed
version. To simplify stuffs, now no transformation is done.
[BUG FIXES]
- Forgot to pass 'pa' argument to Perinci::BashComplete function.
0.86 2013-09-08 (SHARYANTO)
- Update to Rinci 1.1.36 (entity_version -> entity_v).
- Replace Perinci::Access::InProcess with ::Perl and ::Schemeless.
0.85 2013-08-15 (SHARYANTO)
[BUG FIXES]
- No functional changes. Add missing dependencies to Perinci::To::Text
[CT].
0.84 2013-08-11 (SHARYANTO)
[BUG FIXES]
- Forgot to update method name which caused '--help' and the
peri-func-usage to not work properly.
0.83 2013-07-26 (SHARYANTO)
- No functional changes. Adjust to new SHARYANTO::Role::Doc::Section
0.53.
0.82 2013-07-26 (SHARYANTO)
[ENHANCEMENTS]
- Allow disabling paging, when cmdline.page_result result metadata is
active, using PAGER=0.
- Column width now observes the COLUMNS environment.
- Add command line script: peri-func-usage to display usage text for
any Riap function.
0.81 2013-07-26 (SHARYANTO)
- Change options display in usage text to be more compact (remove blank
line after --foo line, but indent the options summary/description
text more deeply).
- Add FAQ item about modifying the common options.
- Mark dev version as 'dev' in --help.
0.80 2013-07-06 (SHARYANTO)
- Add 'use experimental "smartmatch"' for 5.18+.
- Handle error when COLOR=0.
0.79 2013-05-18 (SHARYANTO)
- Use Progress::Any::Output::TermProgressBarColor to replace
Progress::Any::Output::TermProgress.
0.78 2013-05-10 (SHARYANTO)
- Text in common_opt (category, usage, summary) is now not required to
be translateable.
- Update 'id' translation.
0.77 2013-05-10 (SHARYANTO)
[BUG FIXES]
- Setting --format-options didn't work.
0.76 2013-05-10 (SHARYANTO)
[ENHANCEMENTS]
- Common options are now modularized instead of hardcoded. You can now
delete/rename/add common options like --help, --version, etc. See
documentation for the 'common_opts' attribute.
[REMOVED FEATURES]
- Remove 'extra_opts' attribute because they are now supported via
'common_opts'.
0.75 2013-05-04 (SHARYANTO)
- Observe PROGRESS environment (can be set to 0 to disable progress
display).
- binmode(STDOUT, ":utf8") (TODO: option to opt out from this).
0.74 2013-04-16 (SHARYANTO)
- No functional changes. Avoid perl undef warning.
0.73 2013-04-15 (SHARYANTO)
- Provide format_row().
0.72 2013-04-14 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- format_and_display_result() is split to format_result() and
display_result() (should not be a problem because it's not yet
documented).
[ENHANCEMENTS]
- Support streaming output (function needs to set result metadata
is_stream => 1 and result needs to be glob/IO::Handle/array/tied
array, format needs to be text).
- Observe 'x.perinci.cmdline.default_format' metadata attribute.
0.71 2013-04-05 (SHARYANTO)
- No functional changes. Workaround problem which causes non-pretty
text tables to be displayed by default.
0.70 2013-04-05 (SHARYANTO)
- Add no_getopt_compat Getopt::Long::Configure to disregard "+" as
option starter.
0.69 2013-03-15 (SHARYANTO)
- Add 'pa_args' attribute to pass to Perinci::Access (and in turn to
Perinci::Access::HTTP::Client), e.g. HTTP basic auth information.
- Several small tweaks.
0.68 2013-01-09 (SHARYANTO)
- Add workaround for formatter that modifies STDOUT's binmode setting.
0.67 2012-10-29 (SHARYANTO)
- No functional changes. Fix dependencies.
0.66 2012-10-24 (SHARYANTO)
- Display progress indicator for function which uses it (see
Perinci::Access::InProcess 0.36+). For an example of this, see
Git::Bunch 0.24, function sync_bunch().
- Show Perinci::CmdLine's version in --version.
0.65 2012-09-06 (SHARYANTO)
- Remove example script bin/symlink-u due to circular dependency
[RT#79482].
0.64 2012-09-04 (SHARYANTO)
- Automatically set verbose when --dry-run.
0.63 2012-08-29 (SHARYANTO)
- Allow transactional function to be passed --dry-run.
0.62 2012-08-28 (SHARYANTO)
- Allow setting exit code via result metadata key 'cmdline.exit_code'.
0.61 2012-08-08 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Change how array of scalars is parsed, now not as JSON/YAML but using
repeated options (--foo 1 --foo 2) a la traditional Getopt::Long.
- Turn on per-argument explicit JSON and YAML parsing, using
--ARGNAME-json and --ARGNAME-yaml, to make it possible to enter undefs,
empty arrays, etc.
0.60 2012-08-01 (SHARYANTO)
- Rename demo script 'u-symlink' to 'symlink-u'.
- Show cmdline_aliases in help message.
0.59 2012-07-27 (SHARYANTO)
- Tweak: run_history(): Do not format date/time, let
Data::Format::Pretty::Console do it for us
- Fix: --verbose, --quiet, et al didn't work before.
0.58 2012-07-26 (SHARYANTO)
- Allow setting undo => 0 in subcommand, to disable undo/transaction
for that subcommand.
0.57 2012-07-26 (SHARYANTO)
- Add 'extra_opts' attribute.
0.56 2012-07-25 (SHARYANTO)
- No functional changes. Increase dep version
Data::Format::Pretty::Console 0.16.
0.55 2012-07-23 (SHARYANTO)
- Support 'cmdline_src' arg spec key (Rinci 1.1.20+).
0.54 2012-07-19 (SHARYANTO)
- No functional changes. Add dependencies to
Perinci::Access::TCP::{Server,Client} for convenience. Requires
Perinci::Sub::GetArgs::Argv 0.18 which supports parsing nonscalar
arguments as JSON as well as YAML, also for convenience.
0.53 2012-07-12 (SHARYANTO)
[ENHANCEMENTS]
- Add 'default_subcommand' attribute. If set, subcommand name will be
taken from this instead of first command-line argument. To access
other subcommands, users will need to give --cmd command-line option.
- Common options --list will only be added if there are subcommands
defined.
[BUG FIXES]
- A couple of fixes to tab completion and perl undef warnings.
[OTHER]
- Example script 'symlink-with-undo' renamed to 'u-symlink' (to make it
consistent with the upcoming 'u-trash' script; see
File::Trash::Undoable).
0.52 2012-06-26 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Remove options --yaml, --json, --text, --text-pretty, --text-simple;
use --format for now. This is to reduce the possibility of collision
with function argument options (especially things like --text are
common as function arguments). In general Perinci::CmdLine should
introduce as few command-line options as possible to avoid
collisions.
[FIXES]
- Fix typo that cause list of known result formats to be empty in error
message when passed --format=BOGUS
0.51 2012-06-22 (SHARYANTO)
[ENHANCEMENTS]
- Don't use transactions when dry run, so transaction list is not full
with dry run calls.
0.50 2012-06-22 (SHARYANTO)
[ENHANCEMENTS]
- Interpret --dry-run (or environment DRY_RUN=1) and pass -dry_run=>1
to functions that have the dry_run feature.
- Don't treat 304 status as error (still return exit code 0).
0.49 2012-06-22 (SHARYANTO)
[ENHANCEMENTS]
- Implement undo (--undo, --redo, --history, --clear-history).
0.48 2012-06-15 (SHARYANTO)
[ENHANCEMENTS]
- Add module: Perinci::CmdLine::Easy
0.47 2012-04-03 (SHARYANTO)
[FIXES]
- Better handle case when common options like --help, --list, --version
clash with function arguments with the same name. Now the behavior is
to invoke common action (like help, version), unless
--action=subcommand is specified, where it will set function
arguments instead. Note that this is a non-issue when none of the
function arguments happen to have names of 'help', 'list', 'version',
etc.
0.46 2012-03-30 (SHARYANTO)
- No functional changes. Fix typo.
0.45 2012-03-30 (SHARYANTO)
[REFACTORING]
- Split formatting to Perinci::Result::Format (in Perinci dist).
[INCOMPATIBLE CHANGE]
- Rename --pretty (-p) and --nopretty (-P) to --text-pretty and
--text-simple.
0.44 2012-03-29 (SHARYANTO)
[ENHANCEMENTS]
- Make it easy to add more output formats: added --format and formats()
attribute.
[INCOMPATIBLE CHANGE]
- --json now outputs compact JSON instead of pretty ones. To
pretty-print the output one can pipe it to a formatter program.
[FIXES]
- Bash completion: list of common options was incomplete (but we still
can't complete common option's value like --format <tab>).
0.43 2012-03-23 (SHARYANTO)
[ENHANCEMENTS]
- Show default argument value in --help message.
0.42 2012-03-16 (SHARYANTO)
[ENHANCEMENTS]
- Localized/translatable messages. English and Indonesian included.
- Read environment variable PERINCI_CMDLINE_PROGRAM_NAME.
- peri-run: Accept --subcommand (-s) to specify subcommands.
- Allow choosing PAGER via result metadata key 'cmdline.pager'.
0.41 2012-03-08 (SHARYANTO)
[BUG FIXES]
- Fix do not empty envelope when 'cmdline.display_result' is false.
0.40 2012-03-08 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Observe function result metadata: 'cmdline.display_result' (no longer
observe 'cmdline.result_importance').
[ENHANCEMENTS]
- Observe function result metadata: 'cmdline.page_result' to send
result to PAGER.
0.39 2012-03-03 (SHARYANTO)
[ENHANCEMENTS]
- Add short options for --yaml (-y), --json (-j), --pretty (-p),
and --nopretty (-P).
- Observe function result metadata: 'cmdline.result_importance' (if set
to 'low', won't display result).
[FIXES]
- Common options (like --yaml, --help, -l) now won't override options
for function arguments of the same name.
[REMOVED]
- Remove support for PHP serialization output (will be re-added later
via --format, which can use any Data::Format::Pretty::* module).
0.38 2012-02-23 (SHARYANTO)
- Rename distribution from Sub-Spec-CmdLine to Perinci-CmdLine. Now
Rinci/Riap-based (transparent remote access). Refactor into OO. Some
features missing for now. Tests not updated yet.
0.37 2012-01-20 (SHARYANTO)
- No functional changes. Mark deprecation.
0.36 2011-08-25 (SHARYANTO)
- No functional changes. gen_usage() split to its own dist:
Sub-Spec-To-Text. Update to Sub::Spec 0.15.
0.35 2011-08-11 (SHARYANTO)
- Uses Data::Format::Pretty for result formatting. JSON output is now
pretty-printed by default.
0.34 2011-08-03 (SHARYANTO)
- No functional changes. Fixed test script to adjust to new
Object::BlankStr [CT]. Updated dependencies.
0.33 2011-07-26 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Refactoring: move parse_argv() to
Sub::Spec::GetArgs::Argv::get_args_from_argv().
[ENHANCEMENTS]
- Localize Getopt::Long::Configure() effect.
0.32 2011-07-10 (SHARYANTO)
[BUG FIXES]
- runpm: fix -I.
0.31 2011-07-10 (SHARYANTO)
[ENHANCEMENTS]
- bin/runpm: add --help (-h) and -I (--library) options.
- run(): add dash_to_underscore option to allow subcommands using
dashes instead of underscores.
0.30 2011-06-05 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- To reduce the trap of implicit YAML parsing, parsing is only done for
nonscalar arguments.
0.29 2011-06-01 (SHARYANTO)
- No functional changes.
[ETC]
- Update to latest version of Sub::Spec::Runner.
0.28 2011-04-14 (SHARYANTO)
[BUG FIXES]
- Remove extra name line in usage message.
0.27 2011-04-14 (SHARYANTO)
[ENHANCEMENTS]
- run(): For convenience, allow general options (e.g. --version,
--help, --json, etc) to be specified after subcommand name, if it
doesn't collide with spec arg
[ETC]
- Replace Clone::Any with Data::Clone (Clone::Any fallbacks to Storable
which doesn't support storing Regexp, so tests will fail if Clone is
not available).
0.26 2011-03-04 (SHARYANTO)
- Require Sub::Spec::Runner 0.09.
0.25 2011-02-28 (SHARYANTO)
- On non-success response from sub, print output (error message) even
if spec enables cmdline_suppress_output.
0.24 2011-02-28 (SHARYANTO)
- Now based on Sub::Spec::Runner for dependency checking before run.
0.23 2011-02-23 (SHARYANTO)
- Fix dependency (Sub::Spec version).
- Don't add error message when Getopt::Long already prints to stderr.
0.22 2011-02-22 (SHARYANTO)
- Use Sub::Spec::Utils.
0.21 2011-02-21 (SHARYANTO)
- Add some more documentation.
- Requires recent versions of Test::More & Sub::Spec::BashComplete.
0.20 2011-02-18 (SHARYANTO)
- Escape completion output since BashComplete now doesn't.
- Added some doc.
0.19 2011-02-18 (SHARYANTO)
- Provide runpm script.
0.18 2011-02-18 (SHARYANTO)
- run(): More fixes for completion.
- spec: cmdline_aliases is renamed to arg_aliases.
- Fix test [CT].
0.17 2011-02-17 (SHARYANTO)
- run(): Fixed stupid parenthesis bug.
0.16 2011-02-17 (SHARYANTO)
- run(): A couple more fixes for bash completion.
- parse_argv(): Also add --nofoo for bool cmdline_aliases.
0.15 2011-02-17 (SHARYANTO)
- Yet more fixes for bash completion.
- Fixed: parse_argv(): do not convert all remaining $argv to YAML so
they can be reused (e.g. parse_argv'd) again
- run(): add option 'custom_completer' to pass to
Sub::Spec::BashComplete.
0.14 2011-02-17 (SHARYANTO)
- Fixes for bash completion.
0.13 2011-02-17 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- run(): rename 'require' argument to 'load'.
[IMPROVEMENTS]
- parse_argv(): Respect arg spec: 'cmdline_aliases' for specifying
option aliases.
- run(): Allow 'subcommands' argument to be coderef.
- run(): Pass more info (arguments) to coderef 'help' argument.
- run(): Add option 'allow_unknown_args' for non-strict argv parsing.
- gen_usage(): Add option: 'options_name'.
0.12 2011-02-16 (SHARYANTO)
- Fixes for bash completion.
- Add arguments to run(): help, spec, run, per-subcommand category.
- Other bug fixes.
0.11 2011-02-16 (SHARYANTO)
- Add support for bash completion (requires Sub::Spec::BashComplete).
0.10 2011-02-16 (SHARYANTO)
- Add strict=>0 option in parse_argv(), for use by
Sub::Spec::BashComplete.
- Some small refactoring.
0.09 2011-02-15 (SHARYANTO)
- Add --version.
0.08 2011-02-15 (SHARYANTO)
- Fixes for subcommands support.
- Respect spec clause: cmdline_suppress_output.
0.07 2011-02-11 (SHARYANTO)
- Formatting fix: missing newline in error message.
0.06 2011-02-11 (SHARYANTO)
- Add 'cmd' option to gen_usage().
- Formatting tweaks.
0.05 2011-02-11 (SHARYANTO)
- Remove 'required_args'.
0.04 2011-02-10 (SHARYANTO)
- Formatting fixes.
0.03 2011-02-10 (SHARYANTO)
- Formatting tweaks.
- Fix schema clause ('in', not 'choices').
0.02 2011-02-09 (SHARYANTO)
- Incompatible change: rename arg_order to arg_pos.
- Documentation.
0.01 2011-02-09 (SHARYANTO)
- First release.