diff options
Diffstat (limited to 'corepkgs/channels')
-rw-r--r-- | corepkgs/channels/Makefile.am | 11 | ||||
-rw-r--r-- | corepkgs/channels/unpack.nix | 7 | ||||
-rw-r--r-- | corepkgs/channels/unpack.sh.in | 24 |
3 files changed, 42 insertions, 0 deletions
diff --git a/corepkgs/channels/Makefile.am b/corepkgs/channels/Makefile.am new file mode 100644 index 000000000000..1bf73f7f4cb8 --- /dev/null +++ b/corepkgs/channels/Makefile.am @@ -0,0 +1,11 @@ +all-local: unpack.sh + +install-exec-local: + $(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs + $(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs/channels + $(INSTALL_DATA) unpack.nix $(DESTDIR)$(datadir)/nix/corepkgs/channels + $(INSTALL_PROGRAM) unpack.sh $(DESTDIR)$(datadir)/nix/corepkgs/channels + +include ../../substitute.mk + +EXTRA_DIST = default.nix unpack.sh.in diff --git a/corepkgs/channels/unpack.nix b/corepkgs/channels/unpack.nix new file mode 100644 index 000000000000..80ca4a371034 --- /dev/null +++ b/corepkgs/channels/unpack.nix @@ -0,0 +1,7 @@ +{system, inputs}: + +derivation { + name = "channels"; + builder = ./unpack.sh; + inherit system inputs; +} \ No newline at end of file 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 |