From 0b5107c016080e70d30ccba3afa0f9aa7a90a891 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sat, 14 Apr 2012 21:05:28 +0200 Subject: [PATCH] If the (redirected) channel URL contains a version number, use it --- corepkgs/unpack-channel.nix | 4 ++-- corepkgs/unpack-channel.sh | 2 +- scripts/nix-channel.in | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/corepkgs/unpack-channel.nix b/corepkgs/unpack-channel.nix index eba957dff..170f3ab07 100644 --- a/corepkgs/unpack-channel.nix +++ b/corepkgs/unpack-channel.nix @@ -1,11 +1,11 @@ with import ; -{ name, src }: +{ name, channelName, src }: derivation { system = builtins.currentSystem; builder = shell; args = [ "-e" ./unpack-channel.sh ]; - inherit name src bzip2 tar tr; + inherit name channelName src bzip2 tar tr; PATH = "${nixBinDir}:${coreutils}"; } diff --git a/corepkgs/unpack-channel.sh b/corepkgs/unpack-channel.sh index 0b7d89bc4..f42b0870a 100644 --- a/corepkgs/unpack-channel.sh +++ b/corepkgs/unpack-channel.sh @@ -1,4 +1,4 @@ mkdir $out cd $out $bzip2 -d < $src | $tar xf - -mv * $out/$name +mv * $out/$channelName diff --git a/scripts/nix-channel.in b/scripts/nix-channel.in index b3251975b..64e5aa012 100755 --- a/scripts/nix-channel.in +++ b/scripts/nix-channel.in @@ -108,7 +108,13 @@ sub update { die "cannot fetch `$fullURL'" if $? != 0; chomp $path; - $exprs .= "'f: f { name = \"$name\"; src = builtins.storePath \"$path\"; }' "; + # If the URL contains a version number, append it to the name + # attribute (so that "nix-env -q" on the channels profile + # shows something useful). + my $cname = $name; + $cname .= $1 if basename($url) =~ /(-\d.*)$/; + + $exprs .= "'f: f { name = \"$cname\"; channelName = \"$name\"; src = builtins.storePath \"$path\"; }' "; } # Unpack the channel tarballs into the Nix store and install them