Changeset 3223 in MondoRescue
- Timestamp:
- Dec 30, 2013, 10:46:26 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2/mindi/mindi-get-perl-modules
r3143 r3223 11 11 use File::Find; 12 12 use Cwd; 13 use MondoRescue::File; 13 14 14 15 … … 57 58 58 59 59 my $file = get_perl_modules(@ARGV) if (defined $ARGV[0]);60 my $file = mr_get_perl_modules(@ARGV) if (defined $ARGV[0]); 60 61 61 62 foreach my $f (sort keys %$file) { … … 63 64 } 64 65 65 sub get_perl_modules {66 sub mr_get_perl_modules { 66 67 67 68 my %files; … … 70 71 #print join "\n", @INC; 71 72 72 my $require = process_file(@_);73 my $require = mr_process_file(@_); 73 74 74 75 my @includes; … … 78 79 # 79 80 foreach my $d (@INC) { 80 $d = read_all_link($d) if (-l $d);81 $d = mr_read_all_link($d) if (-l $d); 81 82 push @includes,$d if (-d $d); 82 83 } … … 104 105 } 105 106 106 # Cf: http://www.stonehenge.com/merlyn/UnixReview/col27.html107 sub read_all_link {108 109 my $dir = cwd;110 my $link;111 112 find sub {113 return unless -l;114 my @right = split /\//, $File::Find::name;115 my @left = do {116 @right && ($right[0] eq "") ?117 shift @right : # quick way118 split /\//, $dir;119 }; # first element always null120 while (@right) {121 my $item = shift @right;122 next if $item eq "." or $item eq "";123 if ($item eq "..") {124 pop @left if @left > 1;125 next;126 }127 my $link = readlink (join "/", @left, $item);128 if (defined $link) {129 my @parts = split /\//, $link;130 if (@parts && ($parts[0] eq "")) { # absolute131 @left = shift @parts; # quick way132 }133 unshift @right, @parts;134 next;135 } else {136 push @left, $item;137 next;138 }139 }140 #print "$File::Find::name is ", join("/", @left), "\n";141 $link = join("/", @left);142 }, @_;143 return($link);144 }145 146 107 # Adapted From /usr/lib/rpm/mandriva/perl.req 147 108 # by Ken Estes Mail.com kestes@staff.mail.com 148 109 149 sub process_file {110 sub mr_process_file { 150 111 151 112 my %line;
Note:
See TracChangeset
for help on using the changeset viewer.