📄 source.pm
字号:
package CPANPLUS::Shell::Default::Plugins::Source;use strict;use CPANPLUS::Error qw[error msg];use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext';=head1 NAMECPANPLUS::Shell::Default::Plugins::Source =head1 SYNOPSIS CPAN Terminal> /source /tmp/list_of_commands /tmp/more_commands=head1 DESCRIPTIONThis is a C<CPANPLUS::Shell::Default> plugin that works just likeyour unix shells source(1) command; it reads in a file that hascommands 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 skippedin the execution.=cutsub 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 REPORTSPlease report bugs or other issues to E<lt>bug-cpanplus@rt.cpan.org<gt>.=head1 AUTHORThis module by Jos Boumans E<lt>kane@cpan.orgE<gt>.=head1 COPYRIGHTThe 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 ALSOL<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:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -