[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/CPANPLUS/Shell/Default/Plugins/ -> Source.pm (source)

   1  package CPANPLUS::Shell::Default::Plugins::Source;
   2  
   3  use strict;
   4  use CPANPLUS::Error             qw[error msg];
   5  use Locale::Maketext::Simple    Class => 'CPANPLUS', Style => 'gettext';
   6  
   7  =head1 NAME
   8  
   9  CPANPLUS::Shell::Default::Plugins::Source 
  10  
  11  =head1 SYNOPSIS
  12  
  13      CPAN Terminal> /source /tmp/list_of_commands /tmp/more_commands
  14  
  15  =head1 DESCRIPTION
  16  
  17  This is a C<CPANPLUS::Shell::Default> plugin that works just like
  18  your unix shells source(1) command; it reads in a file that has
  19  commands in it to execute, and then executes them.
  20  
  21  A sample file might look like this:
  22  
  23      # first, update all the source files
  24      x --update_source
  25  
  26      # find all of my modules that are on the CPAN 
  27      # test them, and store the error log
  28      a ^KANE$'
  29      t *
  30      p /home/kane/cpan-autotest/log
  31      
  32      # and inform us we're good to go
  33      ! print "Autotest complete, log stored; please enter your commands!"
  34  
  35  Note how empty lines, and lines starting with a '#' are being skipped
  36  in the execution.
  37  
  38  =cut
  39  
  40  
  41  sub plugins { return ( source => 'source' ) }
  42  
  43  sub source {
  44      my $class   = shift;
  45      my $shell   = shift;
  46      my $cb      = shift;
  47      my $cmd     = shift;
  48      my $input   = shift || '';
  49      my $opts    = shift || {};
  50      my $verbose = $cb->configure_object->get_conf('verbose');
  51      
  52      for my $file ( split /\s+/, $input ) {
  53          my $fh = FileHandle->new("$file") or( 
  54              error(loc("Could not open file '%1': %2", $file, $!)),
  55              next
  56          );
  57          
  58          while( my $line = <$fh> ) {
  59              chomp $line;
  60              
  61              next if $line !~ /\S+/; # skip empty/whitespace only lines
  62              next if $line =~ /^#/;  # skip comments
  63              
  64              msg(loc("Dispatching '%1'", $line), $verbose); 
  65              return 1 if $shell->dispatch_on_input( input => $line );
  66          }
  67      }
  68  }
  69  
  70  sub source_help {
  71      return loc('    /source FILE [FILE ..] '.
  72                 '# read in commands from the specified file' ),
  73  }
  74  
  75  1;
  76  
  77  =pod
  78  
  79  =head1 BUG REPORTS
  80  
  81  Please report bugs or other issues to E<lt>bug-cpanplus@rt.cpan.org<gt>.
  82  
  83  =head1 AUTHOR
  84  
  85  This module by Jos Boumans E<lt>kane@cpan.orgE<gt>.
  86  
  87  =head1 COPYRIGHT
  88  
  89  The CPAN++ interface (of which this module is a part of) is copyright (c) 
  90  2001 - 2007, Jos Boumans E<lt>kane@cpan.orgE<gt>. All rights reserved.
  91  
  92  This library is free software; you may redistribute and/or modify it 
  93  under the same terms as Perl itself.
  94  
  95  =head1 SEE ALSO
  96  
  97  L<CPANPLUS::Shell::Default>, L<CPANPLUS::Shell>, L<cpanp>
  98  
  99  =cut
 100  
 101  # Local variables:
 102  # c-indentation-style: bsd
 103  # c-basic-offset: 4
 104  # indent-tabs-mode: nil
 105  # End:
 106  # vim: expandtab shiftwidth=4:
 107  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1