The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Perinci::CmdLine - Rinci/Riap-based command-line application framework

VERSION

This document describes version 1.41 of Perinci::CmdLine (from Perl distribution Perinci-CmdLine), released on 2014-12-19.

SYNOPSIS

See Perinci::CmdLine::Manual::Examples.

DESCRIPTION

See Perinci::CmdLine::Manual.

Screenshots:


Autogenerated help message


Autogenerated help message (verbose mode)


Progress bar


Tab completion


Some output formats


Undo/redo

REQUEST KEYS

See also Perinci::CmdLine::Base. Extra stuffs put by this module to the $r hash/stash.

  • format_options => hash

ATTRIBUTES

All the attributes of Perinci::CmdLine::Base, plus:

log => BOOL (default: 1)

Whether to load Log::Any::App (enable logging output) by default. See "LOGGING" for more details.

use_utf8 => BOOL

From Term::App::Role::Attrs (please see its docs for more details). There are several other attributes added by the role.

undo => BOOL (optional, default 0)

Whether to enable undo/redo functionality. Some things to note if you intend to use undo:

  • These common command-line options will be recognized

    --undo, --redo, --history, --clear-history.

  • Transactions will be used

    use_tx=>1 will be passed to Perinci::Access, which will cause it to initialize the transaction manager. Riap requests begin_tx and commit_tx will enclose the call request to function.

  • Called function will need to support transaction and undo

    Function which does not meet qualifications will refuse to be called.

    Exception is when subcommand is specified with undo=>0, where transaction will not be used for that subcommand. For an example of disabling transaction for some subcommands, see bin/u-trash in the distribution.

undo_dir => STR (optional, default ~/.<program_name>/.undo)

Where to put undo data. This is actually the transaction manager's data dir.

METHODS

All the methods of Perinci::CmdLine::Base, plus:

RESULT METADATA

All those supported by Perinci::CmdLine::Base, plus:

x.hint.result_binary => bool

If set to true, then when formatting to text formats, this class won't print any newline to keep the data being printed unmodified.

ENVIRONMENT

All the environment variables that Perinci::CmdLine::Base supports, plus:

PERINCI_CMDLINE_COLOR_THEME => STR

Can be used to set color_theme.

PROGRESS => BOOL

Explicitly turn the progress bar on/off.

COLOR => INT

Please see Term::App::Role::Attrs.

UTF8 => BOOL

Please see Term::App::Role::Attrs.

SEE ALSO

Perinci, Rinci, Riap.

Perinci::CmdLine::Base.

Perinci::CmdLine::Lite.

Other CPAN modules to write command-line applications: App::Cmd, App::Rad, MooseX::Getopt.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Perinci-CmdLine.

SOURCE

Source repository is at https://github.com/perlancar/perl-Perinci-CmdLine.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Perinci-CmdLine

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.