App-GitGerrit
view release on metacpan or search on metacpan
lib/App/GitGerrit.pm view on Meta::CPAN
use utf8;
use 5.010;
use strict;
use warnings;
use locale ':not_characters';
# The following incantation is here to avoid this bug:
# https://rt.perl.org/rt3/Public/Bug/Display.html?id=63402
my $encoding;
BEGIN {
if ($^O eq 'MSWin32') {
require Win32;
my $cp = Win32::GetConsoleCP();
$encoding = ":encoding(cp$cp)";
} else {
$encoding = ':locale';
}
}
use open ':std', $encoding;
package App::GitGerrit;
{
$App::GitGerrit::VERSION = '0.022';
}
# ABSTRACT: A container for functions for the git-gerrit program
use Pod::Usage;
use Getopt::Long qw(:config auto_version auto_help);
use URI;
use URI::Escape;
# App::GitGerrit was converted from a script into a module following this:
# http://elliotlovesperl.com/2009/11/23/how-to-structure-perl-programs/
use Exporter 'import';
our @EXPORT_OK = qw/run/;
# The $Command variable holds the name of the git-gerrit sub-command
# that's been invoked. It's defined in the 'run' routine below.
our $Command;
# The %Options hash is used to hold the command line options passed to
# all git-gerrit subcommands. The --debug option is common to all of
# them. Each subcommand supports a specific set of options which are
# grokked by the get_options routine below.
my %Options = ( debug => 0, help => 0 );
sub debug {
my ($msg) = @_;
warn 'git-gerrit[DEBUG]: ', $msg, "\n" if $Options{debug};
}
sub info {
my ($msg) = @_;
warn 'git-gerrit[INFO]: ', $msg, "\n";
}
sub error {
my ($msg) = @_;
die 'git-gerrit[ERROR]: ', $msg, "\n";
}
sub syntax_error {
my ($msg) = @_;
pod2usage "git-gerrit[SYNTAX]: $msg\n";
}
sub get_options {
my (@opt_specs) = @_;
# Get defaults from configuration
foreach my $cmd ($Command, 'all') {
if (my $options = config("options.$cmd")) {
debug "$cmd: unshift default options: $options";
unshift @ARGV, split(' ', $options);
( run in 2.398 seconds using v1.01-cache-2.11-cpan-5a3173703d6 )