diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-12-29T19·04+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-12-29T19·04+0000 |
commit | 2fdb27e7f21c99174d35556575e3d25bf2bdc23e (patch) | |
tree | 303a1fc8b8c6907f49441554b0b5da3076d4d931 /scripts/generate-patches.pl | |
parent | e1e9c036f9313ac6bf160dba67e694b7868f1567 (diff) |
* Atomic file replacement is good.
Diffstat (limited to 'scripts/generate-patches.pl')
-rwxr-xr-x | scripts/generate-patches.pl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/scripts/generate-patches.pl b/scripts/generate-patches.pl index e084b994db9b..7d957839bb24 100755 --- a/scripts/generate-patches.pl +++ b/scripts/generate-patches.pl @@ -198,9 +198,17 @@ foreach my $p (keys %dstOutPaths) { my $finalName = "$narBz2Hash-$name-$closestVersion-to-$version.nar-diff"; - - system("cp '$tmpdir/DIFF' '$patchesDir/$finalName'") == 0 + + if (-e "$patchesDir/$finalName") { + print " not copying, already exists\n"; + next; + } + + system("cp '$tmpdir/DIFF' '$patchesDir/$finalName.tmp'") == 0 or die "cannot copy diff"; + + rename("$patchesDir/$finalName.tmp", "$patchesDir/$finalName") + or die "cannot rename $patchesDir/$finalName.tmp"; # Add the patch to the manifest. addPatch \%dstPatches, $p, |