diff options
-rwxr-xr-x | scripts/generate-patches.pl | 12 | ||||
-rw-r--r-- | scripts/readmanifest.pm.in | 5 |
2 files changed, 14 insertions, 3 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, diff --git a/scripts/readmanifest.pm.in b/scripts/readmanifest.pm.in index 766aa4219944..31ea5f43cc56 100644 --- a/scripts/readmanifest.pm.in +++ b/scripts/readmanifest.pm.in @@ -146,7 +146,7 @@ sub writeManifest my $patches = shift; my $successors = shift; - open MANIFEST, ">$manifest"; + open MANIFEST, ">$manifest.tmp"; # !!! check exclusive foreach my $storePath (keys %{$narFiles}) { my $narFileList = $$narFiles{$storePath}; @@ -184,6 +184,9 @@ sub writeManifest close MANIFEST; + + rename("$manifest.tmp", $manifest) + or die "cannot rename $manifest.tmp: $!"; } |