src/hg/js/cpJsFiles.pl 1.3
1.3 2009/08/13 16:25:31 markd
always get modification time right
Index: src/hg/js/cpJsFiles.pl
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/js/cpJsFiles.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -b -B -U 4 -r1.2 -r1.3
--- src/hg/js/cpJsFiles.pl 10 Aug 2009 21:14:20 -0000 1.2
+++ src/hg/js/cpJsFiles.pl 13 Aug 2009 16:25:31 -0000 1.3
@@ -46,24 +46,29 @@
my $mtime = $stat[9];
# update destination file as appropriate
my $update = 0;
- if(-e "$destDir/$file") {
- my @destStat = stat("$destDir/$file") or die "Couldn't stat '$destDir/$file'; err: $!";
- $update = $destStat[9] < $mtime;
+ my $destFile = "$destDir/$file";
+ if(-e $destFile) {
+ my @destStat = stat("$destFile") or die "Couldn't stat '$destFile'; err: $!";
+ $update = ($destStat[9] < $mtime);
} else {
$update = 1;
}
if($update) {
- if(system("cp -p $file $destDir")) {
- # cp -p doesn't work if user doesn't own destDir, so fall-back to rm/cp
- !system("rm $destDir/$file") || die "Couldn't unlink $destDir/$file: err: $!";
- !system("cp $file $destDir") || die "Couldn't cp $file: err: $!";
+ if (-e $destFile) {
+ unlink($destFile) || die "Couldn't unlink $destFile'; err: $!";
}
+ !system("cp -p $file $destFile") || die "Couldn't cp $file to $destFile: err: $!";
}
if($file =~ /(.+)\.js$/) {
my $prefix = $1;
+ # make sure time is right, in case file; file might have been newer,
+ # speculation that cp -p silently failed if user doesn't own destDir
+ @stat = stat("$destFile") or die "Couldn't stat '$destFile'; err: $!";
+ $mtime = $stat[9];
+
my $softLink = $file;
$softLink =~ s/\.js$/-$mtime.js/;
# Delete obsolete symlinks
@@ -74,9 +79,8 @@
unlink("$destDir/$f") || die "Couldn't unlink '$destDir/$softLink'; err: $!";
}
}
}
-
# create new symlink
if(!(-l "$destDir/$softLink")) {
print STDERR "ln -s $destDir/$softLink\n" if($debug);
!system("ln -s $destDir/$file $destDir/$softLink") || die "Couldn't ln -s $file; err: $!";