Skip to content
Snippets Groups Projects
Select Git revision
  • 1b54d4a2a80e73053d355bf5a4a26645115985cb
  • master default protected
2 results

redminer.pl

  • pmlnk.pm 7.77 KiB
    #!/usr/bin/perl
    
    =head1 NAME
    
      pmlnk -- Perl Module Link
    
    =cut
    
    use strict;
    
    package pmlnk;
    
    use Data::Dumper;
    $Data::Dumper::Indent= 1;
    
    __PACKAGE__->main() unless caller();
    
    sub main
    {
      # print __LINE__, " caller: ", join(' ', caller()), "\n";
    
      my @dirs= ();
      my $target;
      my $pkg_list;
      my %par= ( op_mode => 'link' );
      while (my $arg= shift (@ARGV))
      {
        # print __LINE__, " arg=[$arg]\n";
    
           if ($arg eq '--') { push (@dirs, @ARGV); @ARGV= (); }
        elsif ($arg =~ /^--(.+)/)
        {
          my ($opt, $val)= split ('=', $1, 2);
          if ($opt eq 'help') { usage(); }
          elsif ($opt eq 'copy') { $par{op_mode}= 'copy'; }
          elsif ($opt eq 'force' || $opt eq 'overwrite') { $par{force}= 1; }
          elsif ($opt eq 'link') { $par{op_mode}= 'link'; }
          elsif ($opt eq 'packages') { $pkg_list= shift(@ARGV); }
          elsif ($opt eq 'target') { $target= shift(@ARGV); }
          else { usage(); }
        }
        elsif ($arg =~ /^-(.+)/)
        {
          foreach my $opt (split ('', $1))
          {
               if ($opt eq 'h') { usage(); exit (0); }
          # elsif ($opt eq 'x') { $x_flag= 1; }
            else { usage(); }
          }
        }
        else
        {
          push (@dirs, $arg);
        }
      }
    
      push (@dirs, '.') unless (@dirs);
    
      $par{pkg_list}= read_items($pkg_list) if (defined ($pkg_list));
      my $pmlnk= pmlnk->new( %par );
    
      # print __LINE__, " dirs: ", join(' ', @dirs), "\n";
      foreach my $dir (@dirs)
      {
        # print __LINE__, " dir=[$dir]\n";
        my $pm_files= $pmlnk->find_modules($dir, 'pm');
        # print __LINE__, " pm_files: ", join(' ', @$pm_files), "\n";
        $pmlnk->check_module_list(@$pm_files);
      }