Changeset 2850 in MondoRescue for branches/2.2.10/mindi/mindi-get-perl-modules
- Timestamp:
- Jul 24, 2011, 4:12:44 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mindi/mindi-get-perl-modules
r2635 r2850 6 6 7 7 use File::Find; 8 use Cwd; 8 9 9 10 my $file = get_perl_modules(@ARGV) if (defined $ARGV[0]); … … 28 29 # 29 30 foreach my $d (@INC) { 31 $d = read_all_link($d) if (-l $d); 30 32 push @includes,$d if (-d $d); 31 33 } … … 53 55 } 54 56 57 # Cf: http://www.stonehenge.com/merlyn/UnixReview/col27.html 58 sub read_all_link { 59 60 my $dir = cwd; 61 my $link; 62 63 find sub { 64 return unless -l; 65 my @right = split /\//, $File::Find::name; 66 my @left = do { 67 @right && ($right[0] eq "") ? 68 shift @right : # quick way 69 split /\//, $dir; 70 }; # first element always null 71 while (@right) { 72 my $item = shift @right; 73 next if $item eq "." or $item eq ""; 74 if ($item eq "..") { 75 pop @left if @left > 1; 76 next; 77 } 78 my $link = readlink (join "/", @left, $item); 79 if (defined $link) { 80 my @parts = split /\//, $link; 81 if (@parts && ($parts[0] eq "")) { # absolute 82 @left = shift @parts; # quick way 83 } 84 unshift @right, @parts; 85 next; 86 } else { 87 push @left, $item; 88 next; 89 } 90 } 91 #print "$File::Find::name is ", join("/", @left), "\n"; 92 $link = join("/", @left); 93 }, @_; 94 return($link); 95 } 96 55 97 # Adapted From /usr/lib/rpm/mandriva/perl.req 56 98 # by Ken Estes Mail.com kestes@staff.mail.com
Note:
See TracChangeset
for help on using the changeset viewer.