/usr/share/perl5/Catmandu/Cmd/run.pm is in libcatmandu-perl 1.0700-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | package Catmandu::Cmd::run;
use Catmandu::Sane;
our $VERSION = '1.07';
use parent 'Catmandu::Cmd';
use Catmandu;
use Catmandu::Util qw(require_package);
use namespace::clean;
sub command_opt_spec {
(
["var=s%", ""],
["fix=s@", ""],
["preprocess|pp", ""],
["verbose|v", ""],
["i", "interactive mode"],
);
}
sub command {
my ($self, $opts, $args) = @_;
if (defined $opts->{i} || !defined $args->[0]) {
my $pkg = require_package('Catmandu::Interactive');
my $app = Catmandu::Interactive->new();
$app->run();
}
else {
my $fix_file = $args->[0];
$fix_file = [\*STDIN] unless defined $fix_file;
$opts->{fix} = [$fix_file];
my $from = Catmandu->importer('Null');
$from = $self->_build_fixer($opts)->fix($from);
if ($opts->verbose) {
$from = $from->benchmark;
}
my $into = Catmandu->exporter('Null');
my $n = $into->add_many($from);
$into->commit;
if ($opts->verbose) {
say STDERR $n == 1
? "converted 1 object"
: "converted $n objects";
say STDERR "done";
}
}
}
1;
__END__
=pod
=head1 NAME
Catmandu::Cmd::run - run a fix command
=head1 EXAMPLES
# Run an interactive Fix shell
$ catmandu run
# Execute the fix script
$ catmandu run myfixes.txt
# Execute the scripts with options passed
$ catmandu run --var source=bla myfixes.txt
$ cat myfixes.txt
add_field(my_source,{{source}})
# Or create an execurable fix script:
#!/usr/bin/env catmandu run
do importer(Mock,size:10)
add_field(foo,bar)
add_to_exporter(.,JSON)
end
=cut
|