diff options
Diffstat (limited to 'corepkgs')
-rw-r--r-- | corepkgs/Makefile.am | 2 | ||||
-rw-r--r-- | corepkgs/nix-pull/Makefile.am | 11 | ||||
-rw-r--r-- | corepkgs/nix-pull/builder.sh.in | 34 | ||||
-rw-r--r-- | corepkgs/nix-pull/default.nix | 7 |
4 files changed, 53 insertions, 1 deletions
diff --git a/corepkgs/Makefile.am b/corepkgs/Makefile.am index c9ea11cefca7..ca4cea2fc6d6 100644 --- a/corepkgs/Makefile.am +++ b/corepkgs/Makefile.am @@ -1 +1 @@ -SUBDIRS = fetchurl nar buildenv channels +SUBDIRS = fetchurl nar buildenv channels nix-pull diff --git a/corepkgs/nix-pull/Makefile.am b/corepkgs/nix-pull/Makefile.am new file mode 100644 index 000000000000..91adb4853f3b --- /dev/null +++ b/corepkgs/nix-pull/Makefile.am @@ -0,0 +1,11 @@ +all-local: builder.sh + +install-exec-local: + $(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs + $(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs/nix-pull + $(INSTALL_DATA) default.nix $(DESTDIR)$(datadir)/nix/corepkgs/nix-pull + $(INSTALL_PROGRAM) builder.sh $(DESTDIR)$(datadir)/nix/corepkgs/nix-pull + +include ../../substitute.mk + +EXTRA_DIST = default.nix builder.sh.in diff --git a/corepkgs/nix-pull/builder.sh.in b/corepkgs/nix-pull/builder.sh.in new file mode 100644 index 000000000000..cc1a125d8f8f --- /dev/null +++ b/corepkgs/nix-pull/builder.sh.in @@ -0,0 +1,34 @@ +#! @shell@ -e + +export PATH=/bin:/usr/bin + +mkdir $out + +cat > $out/fetch <<EOF +#! @shell@ -e + +export PATH=/bin:/usr/bin + +echo "downloading \$2..." + +export PRINT_PATH=1 +result=(\$(@bindir@/nix-prefetch-url \$2)) + +hash=\${result[0]} +path=\${result[1]} + +if test "\$hash" != "\$3"; then + echo "hash is \$hash, expected \$3" + exit 1 +fi + +echo "unpacking into \$1..." + +if ! @bunzip2@ < "\$path" | @bindir@/nix-store --restore "\$1"; then + exit 1 +fi + +exit 0 +EOF + +chmod +x $out/fetch diff --git a/corepkgs/nix-pull/default.nix b/corepkgs/nix-pull/default.nix new file mode 100644 index 000000000000..700d7213141c --- /dev/null +++ b/corepkgs/nix-pull/default.nix @@ -0,0 +1,7 @@ +{system}: + +derivation { + name = "nix-pull"; + builder = ./builder.sh; + inherit system; +} |