# - some clean-up... #
#####################################################################
-die "You have to specify input files" if (@ARGV < 1);
+$pear = "/usr/share/pear";
@files = ();
%req = ();
-while (@ARGV > 0) {
- $f = shift;
+foreach (@ARGV ? $ARGV : <> ) {
+ chomp;
+ $f = $_;
push @files, $f;
# skip non-php files
next unless ($f =~ /\.php$/);
open(F, "< $f") or die;
+ if ($f =~ /$pear/) {
+ $file_dir = $f;
+ $file_dir =~ s|.*$pear/||;
+ $file_dir =~ s|/[^/]*$||;
+ } else {
+ $file_dir = undef;
+ }
+
while (<F>) {
# skip comments
next if (/^\s*(#|\/\/|\*|\/\*)/);
}
next if ($x =~ m|^\./| or $x =~ /\$/);
+ next unless ($x =~ /\.php$/);
+ $req{$x} = 1;
+ }
+
+ next unless (defined $file_dir);
+
+ while (/(\W|^)(require|include)(_once)?
+ \s* \(? \s* dirname \s* \( \s* __FILE__ \s* \) \s* \. \s*
+ ("([^"]*)"|'([^']*)')
+ \s* \)? \s* ;/xg) {
+ if ($5 ne "") {
+ $x = $5;
+ } elsif ($6 ne "") {
+ $x = $6;
+ } else {
+ next;
+ }
+
+ next if ($x =~ /\$/);
+ next unless ($x =~ /\.php$/);
+
+ $x = "$file_dir/$x";
+ $x =~ s|/+|/|g;
$req{$x} = 1;
}
}