21655a70f5
Nix expressions. To subscribe to a channel (needs to be done only once): nix-channel --add \ http://catamaran.labs.cs.uu.nl/dist/nix/channels/nixpkgs-unstable This just adds the given URL to ~/.nix-channels (which can also be edited manually). To update from all channels: nix-channel --update This fetches the latest expressions and pulls cache manifests. The default Nix expression (~/.nix-defexpr) is made to point to the conjunction of the expressions downloaded from all channels. So to update all installed derivations in the current user environment: nix-channel --update nix-env --upgrade '*' If you are really courageous, you can put this in a cronjob or something. You can subscribe to multiple channels. It is not entirely clear what happens when there are name clashes between derivations from different channels. From nix-env/main.cc it appears that the one with the lowest (highest?) hash will be used, which is pretty meaningless.
24 lines
338 B
Bash
24 lines
338 B
Bash
#! @shell@ -e
|
|
|
|
export PATH=/bin:/usr/bin # !!! impure
|
|
|
|
mkdir $out
|
|
mkdir $out/tmp
|
|
cd $out/tmp
|
|
|
|
expr=$out/default.nix
|
|
echo '[' > $expr
|
|
|
|
nr=0
|
|
for i in $inputs; do
|
|
echo "unpacking $i"
|
|
@bunzip2@ < $i | tar xvf -
|
|
mv * ../$nr # !!! hacky
|
|
echo "(import ./$nr)" >> $expr
|
|
nr=$(($nr + 1))
|
|
done
|
|
|
|
echo ']' >> $expr
|
|
|
|
cd ..
|
|
rmdir tmp |