App-PrettyRes
view release on metacpan or search on metacpan
bin/pretty-res view on Meta::CPAN
#!perl
our $DATE = '2016-03-10'; # DATE
our $VERSION = '0.03'; # VERSION
use 5.010001;
use strict;
use warnings;
my %Opts = (
input => 'json',
output => 'text',
);
my $Input;
my @Output;
sub parse_cmdline {
require Getopt::Long;
my $res = Getopt::Long::GetOptions(
'input|i=s' => \$Opts{input},
'output|o=s' => \$Opts{output},
'version|v' => sub {
say "pretty-res version ", ($main::VERSION // '?');
exit 0;
},
'help|h' => sub {
print <<USAGE;
Usage:
pretty-res [OPTIONS] < INPUT
pretty-res --version
pretty-res --help
Examples:
pretty-res -o yaml data.json
Options:
--input=s, -i Input format (json, yaml, perl; default is json).
--output=s, -o Output format (text, text-pretty, text-simple, yaml, json,
json-pretty, ruby, perl, php).
Consult manpage/documentation for more details.
USAGE
exit 0;
},
);
exit 99 if !$res;
}
sub get_input {
require Perinci::Result::Util;
local $/;
if ($Opts{input} eq 'json') {
require JSON::MaybeXS;
$Input = JSON::MaybeXS->new->allow_nonref->decode(~~<>);
} elsif ($Opts{input} eq 'yaml') {
require YAML::Syck;
$Input = YAML::Syck::Load(~~<>);
} elsif ($Opts{input} eq 'perl') {
$Input = eval(~~<>);
} else {
warn "Unknown input format, ".
"refer to documentation for available formats\n";
exit 99;
}
unless (Perinci::Result::Util::is_env_res($Input)) {
$Input = [200, "OK (enveloped added by pretty-res)", $Input];
}
}
sub show_output {
require Perinci::Result::Format;
print Perinci::Result::Format::format($Input, $Opts{output});
}
# MAIN
parse_cmdline();
get_input();
show_output();
1;
# ABSTRACT: Format enveloped result prettily
# PODNAME: pretty-res
( run in 1.744 second using v1.01-cache-2.11-cpan-ff9377addf4 )