about summary refs log tree commit diff
path: root/corepkgs/channels/unpack.sh.in
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-04-21T14·54+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-04-21T14·54+0000
commit21655a70f5a6e80b477d8bf758aa24eb0fcbdbfe (patch)
tree6a322bfa5291ede4d00d5d07c4d2c5a3ae395dac /corepkgs/channels/unpack.sh.in
parentf79e9c2d22345eeb0c721a8cf5375101d33dc4c9 (diff)
* Channels. These allow you to stay current with an evolving set of
  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.

Diffstat (limited to 'corepkgs/channels/unpack.sh.in')
-rw-r--r--corepkgs/channels/unpack.sh.in24
1 files changed, 24 insertions, 0 deletions
diff --git a/corepkgs/channels/unpack.sh.in b/corepkgs/channels/unpack.sh.in
new file mode 100644
index 000000000000..f349f3da3862
--- /dev/null
+++ b/corepkgs/channels/unpack.sh.in
@@ -0,0 +1,24 @@
+#! @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
\ No newline at end of file