aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/timestamp.pl
diff options
context:
space:
mode:
authorMike Baker <mbm@openwrt.org>2006-05-15 22:42:04 +0000
committerMike Baker <mbm@openwrt.org>2006-05-15 22:42:04 +0000
commitd167ad781faed80011c73e8a65dd402308d75a6b (patch)
tree107fa12ed954dea86e152334fe02322ca3c3c546 /scripts/timestamp.pl
parent6cf19bfcfef0f4356b56f4c82c32b7a6ca153238 (diff)
downloadmaster-187ad058-d167ad781faed80011c73e8a65dd402308d75a6b.tar.gz
master-187ad058-d167ad781faed80011c73e8a65dd402308d75a6b.tar.bz2
master-187ad058-d167ad781faed80011c73e8a65dd402308d75a6b.zip
replace find call with perl code
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3782 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts/timestamp.pl')
-rwxr-xr-xscripts/timestamp.pl33
1 files changed, 22 insertions, 11 deletions
diff --git a/scripts/timestamp.pl b/scripts/timestamp.pl
index dc47e24aae..9735dd61e4 100755
--- a/scripts/timestamp.pl
+++ b/scripts/timestamp.pl
@@ -1,24 +1,35 @@
#!/usr/bin/perl
use strict;
+use File::stat;
+
+sub crawl($$) {
+ my $path = shift;
+ my $options = shift;
+ my @results = $path;
+ opendir(DIR,$path);
+ foreach my $file (readdir(DIR)) {
+ if ($file !~m/^(\.(svn|\.?)|CVS$options)$/) {
+ push @results, crawl("$path/$file",$options);
+ }
+ }
+ closedir(DIR);
+ return @results;
+}
sub get_ts($$) {
my $path = shift;
my $options = shift;
my $ts = 0;
my $fn = "";
- open FIND, "find $path -not -path \\*.svn\\* -and -not -path \\*CVS\\* $options 2>/dev/null |";
- while (<FIND>) {
- chomp;
- my $file = $_;
- open FILE, "<$file";
- my @stat = stat FILE;
- close FILE;
- if ($stat[9] > $ts) {
- $ts = $stat[9];
+ my @search = crawl($path,$options);
+ while (@search) {
+ my $file = shift @search;
+ my $mtime = stat($file)->mtime;
+ if ($mtime > $ts) {
+ $ts = $mtime;
$fn = $file;
}
}
- close FIND;
return ($ts, $fn);
}
@@ -30,7 +41,7 @@ while (@ARGV > 0) {
my $path = shift @ARGV;
if ($path =~ /^-x/) {
my $str = shift @ARGV;
- $options{"-x"} .= " -and -not -path \\*".$str."\\*"
+ $options{"-x"} .= "|".$str;
} elsif ($path =~ /^-/) {
$options{$path} = 1;
} else {