/
usr
/
share
/
perl5
/
CPANPLUS
/
Shell
/
Default
/
Plugins
/
/usr/share/perl5/CPANPLUS/Shell/Default/Plugins
mkdir
upload
Name
Size
Mode
Actions
CustomSource.pm
5960
0644
edit
dl
rm
HOWTO.pod
3890
0644
edit
dl
rm
Remote.pm
4738
0644
edit
dl
rm
Source.pm
2619
0644
edit
dl
rm
Edit:
/usr/share/perl5/CPANPLUS/Shell/Default/Plugins/Source.pm
(2619B)
package CPANPLUS::Shell::Default::Plugins::Source; use strict; use CPANPLUS::Error qw[error msg]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; =head1 NAME CPANPLUS::Shell::Default::Plugins::Source =head1 SYNOPSIS CPAN Terminal> /source /tmp/list_of_commands /tmp/more_commands =head1 DESCRIPTION This is a C<CPANPLUS::Shell::Default> plugin that works just like your unix shells source(1) command; it reads in a file that has commands in it to execute, and then executes them. A sample file might look like this: # first, update all the source files x --update_source # find all of my modules that are on the CPAN # test them, and store the error log a ^KANE$' t * p /home/kane/cpan-autotest/log # and inform us we're good to go ! print "Autotest complete, log stored; please enter your commands!" Note how empty lines, and lines starting with a '#' are being skipped in the execution. =cut sub plugins { return ( source => 'source' ) } sub source { my $class = shift; my $shell = shift; my $cb = shift; my $cmd = shift; my $input = shift || ''; my $opts = shift || {}; my $verbose = $cb->configure_object->get_conf('verbose'); for my $file ( split /\s+/, $input ) { my $fh = FileHandle->new("$file") or( error(loc("Could not open file '%1': %2", $file, $!)), next ); while( my $line = <$fh> ) { chomp $line; next if $line !~ /\S+/; # skip empty/whitespace only lines next if $line =~ /^#/; # skip comments msg(loc("Dispatching '%1'", $line), $verbose); return 1 if $shell->dispatch_on_input( input => $line ); } } } sub source_help { return loc(' /source FILE [FILE ..] '. '# read in commands from the specified file' ), } 1; =pod =head1 BUG REPORTS Please report bugs or other issues to E<lt>bug-cpanplus@rt.cpan.org<gt>. =head1 AUTHOR This module by Jos Boumans E<lt>kane@cpan.orgE<gt>. =head1 COPYRIGHT The CPAN++ interface (of which this module is a part of) is copyright (c) 2001 - 2007, Jos Boumans E<lt>kane@cpan.orgE<gt>. All rights reserved. This library is free software; you may redistribute and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L<CPANPLUS::Shell::Default>, L<CPANPLUS::Shell>, L<cpanp> =cut # Local variables: # c-indentation-style: bsd # c-basic-offset: 4 # indent-tabs-mode: nil # End: # vim: expandtab shiftwidth=4:
Save
cmd:
run