2012-01-03 02:51:38 +01:00
|
|
|
with import <nix/config.nix>;
|
|
|
|
|
2012-08-01 22:34:17 +02:00
|
|
|
let
|
|
|
|
|
|
|
|
builder = builtins.toFile "unpack-channel.sh"
|
|
|
|
''
|
|
|
|
mkdir $out
|
|
|
|
cd $out
|
2013-05-14 15:10:14 +02:00
|
|
|
xzpat="\.xz\$"
|
|
|
|
gzpat="\.gz\$"
|
|
|
|
if [[ "$src" =~ $xzpat ]]; then
|
2012-12-05 11:02:44 +01:00
|
|
|
${xz} -d < $src | ${tar} xf - ${tarFlags}
|
2013-07-12 14:06:05 +02:00
|
|
|
elif [[ "$src" =~ $gzpat ]]; then
|
2013-05-14 15:10:14 +02:00
|
|
|
${gzip} -d < $src | ${tar} xf - ${tarFlags}
|
2012-12-05 11:02:44 +01:00
|
|
|
else
|
|
|
|
${bzip2} -d < $src | ${tar} xf - ${tarFlags}
|
|
|
|
fi
|
2017-02-27 10:09:48 +01:00
|
|
|
if [ * != $channelName ]; then
|
|
|
|
mv * $out/$channelName
|
|
|
|
fi
|
2012-08-01 23:56:11 +02:00
|
|
|
if [ -n "$binaryCacheURL" ]; then
|
|
|
|
mkdir $out/binary-caches
|
|
|
|
echo -n "$binaryCacheURL" > $out/binary-caches/$channelName
|
|
|
|
fi
|
2012-08-01 22:34:17 +02:00
|
|
|
'';
|
|
|
|
|
|
|
|
in
|
|
|
|
|
2012-08-01 23:56:11 +02:00
|
|
|
{ name, channelName, src, binaryCacheURL ? "" }:
|
2012-01-03 02:51:38 +01:00
|
|
|
|
|
|
|
derivation {
|
2012-04-14 18:38:52 +02:00
|
|
|
system = builtins.currentSystem;
|
2012-01-03 02:51:38 +01:00
|
|
|
builder = shell;
|
2012-08-01 22:34:17 +02:00
|
|
|
args = [ "-e" builder ];
|
2012-08-01 23:56:11 +02:00
|
|
|
inherit name channelName src binaryCacheURL;
|
2012-08-01 22:34:17 +02:00
|
|
|
|
2012-01-03 02:51:38 +01:00
|
|
|
PATH = "${nixBinDir}:${coreutils}";
|
2012-08-01 22:34:17 +02:00
|
|
|
|
2012-04-26 16:52:08 +02:00
|
|
|
# No point in doing this remotely.
|
|
|
|
preferLocalBuild = true;
|
2012-05-10 04:14:36 +02:00
|
|
|
|
2015-03-24 11:15:45 +01:00
|
|
|
inherit chrootDeps;
|
2012-01-03 02:51:38 +01:00
|
|
|
}
|