mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-30 01:26:15 +02:00
* Add a version number to manifests.
This commit is contained in:
parent
8d3c346559
commit
8376fff151
3 changed files with 16 additions and 2 deletions
|
@ -27,7 +27,10 @@ my %successors;
|
||||||
|
|
||||||
for my $manifest (glob "$manifestDir/*.nixmanifest") {
|
for my $manifest (glob "$manifestDir/*.nixmanifest") {
|
||||||
# print STDERR "reading $manifest\n";
|
# print STDERR "reading $manifest\n";
|
||||||
readManifest $manifest, \%narFiles, \%patches, \%successors;
|
if (readManifest($manifest, \%narFiles, \%patches, \%successors) < 3) {
|
||||||
|
print STDERR "you have an old-style manifest `$manifest'; please delete it\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,9 @@ sub processURL {
|
||||||
"'$url' > '$manifest'") == 0
|
"'$url' > '$manifest'") == 0
|
||||||
or die "curl failed: $?";
|
or die "curl failed: $?";
|
||||||
|
|
||||||
readManifest $manifest, \%narFiles, \%patches, \%successors;
|
if (readManifest($manifest, \%narFiles, \%patches, \%successors) < 3) {
|
||||||
|
die "manifest `$url' is too old (i.e., for Nix <= 0.7)\n";
|
||||||
|
}
|
||||||
|
|
||||||
my $baseName = "unnamed";
|
my $baseName = "unnamed";
|
||||||
if ($url =~ /\/([^\/]+)\/[^\/]+$/) { # get the forelast component
|
if ($url =~ /\/([^\/]+)\/[^\/]+$/) { # get the forelast component
|
||||||
|
|
|
@ -41,6 +41,8 @@ sub readManifest {
|
||||||
my $inside = 0;
|
my $inside = 0;
|
||||||
my $type;
|
my $type;
|
||||||
|
|
||||||
|
my $manifestVersion = 2;
|
||||||
|
|
||||||
my $storePath;
|
my $storePath;
|
||||||
my $url;
|
my $url;
|
||||||
my $hash;
|
my $hash;
|
||||||
|
@ -139,6 +141,7 @@ sub readManifest {
|
||||||
elsif (/^\s*NarHash:\s*(\S+)\s*$/) { $narHash = $1; }
|
elsif (/^\s*NarHash:\s*(\S+)\s*$/) { $narHash = $1; }
|
||||||
elsif (/^\s*References:\s*(.*)\s*$/) { $references = $1; }
|
elsif (/^\s*References:\s*(.*)\s*$/) { $references = $1; }
|
||||||
elsif (/^\s*Deriver:\s*(\S+)\s*$/) { $deriver = $1; }
|
elsif (/^\s*Deriver:\s*(\S+)\s*$/) { $deriver = $1; }
|
||||||
|
elsif (/^\s*ManifestVersion:\s*(\d+)\s*$/) { $manifestVersion = $1; }
|
||||||
|
|
||||||
# Compatibility;
|
# Compatibility;
|
||||||
elsif (/^\s*NarURL:\s*(\S+)\s*$/) { $url = $1; }
|
elsif (/^\s*NarURL:\s*(\S+)\s*$/) { $url = $1; }
|
||||||
|
@ -148,6 +151,8 @@ sub readManifest {
|
||||||
}
|
}
|
||||||
|
|
||||||
close MANIFEST;
|
close MANIFEST;
|
||||||
|
|
||||||
|
return $manifestVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,6 +164,10 @@ sub writeManifest
|
||||||
|
|
||||||
open MANIFEST, ">$manifest.tmp"; # !!! check exclusive
|
open MANIFEST, ">$manifest.tmp"; # !!! check exclusive
|
||||||
|
|
||||||
|
print MANIFEST "version {\n";
|
||||||
|
print MANIFEST " ManifestVersion: 3\n";
|
||||||
|
print MANIFEST "}\n";
|
||||||
|
|
||||||
foreach my $storePath (keys %{$narFiles}) {
|
foreach my $storePath (keys %{$narFiles}) {
|
||||||
my $narFileList = $$narFiles{$storePath};
|
my $narFileList = $$narFiles{$storePath};
|
||||||
foreach my $narFile (@{$narFileList}) {
|
foreach my $narFile (@{$narFileList}) {
|
||||||
|
|
Loading…
Reference in a new issue