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

NAME

MooseX::App::Plugin::Term - Allows one to specify options/parameters via terminal prompts

SYNOPSIS

In your base class:

 package MyApp;
 use MooseX::App qw(Term);

In your command class:

 package MyApp::SomeCommand;
 use MooseX::App::Command;
 
 option 'some_option' => (
     is             => 'rw',
     isa            => 'Int',
     documentation  => 'Something',
     cmd_term       => 1,
 );
 
 sub run {
     my ($self) = @_;
     say "Some option is ".$self->some_option;
 }

In your shell

 bash$ myapp some_command
 Something (Required, an integer):
 test
 Value must be an integer (not 'test')
 1
 
 Some option is 1

DESCRIPTION

This plugin can prompt the user for missing options/parameters on the terminal. The user will only be promted if the parameter were not provided by different means (parameter and option or config files and environment values if the respectice plugins have been loaded before this plugin) and if the script is connected to an interactive terminal.

Term input has basic editing capabilities (cursor, del, backspace and history)