summary refs log tree commit diff
path: root/pkgs/stdenv/generic
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2004-03-29 17:23:01 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2004-03-29 17:23:01 +0000
commit12ae5363ea658d399bdb008f6ded3cde355f9310 (patch)
treee2a2ab3210854bfaad01f955c32b1cda724a8790 /pkgs/stdenv/generic
parentbc71554fc80a760c3a8e01f9e9e97500aa9ccde1 (diff)
downloadnixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.gz
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.bz2
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.lz
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.xz
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.zst
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.zip
* Remove trivial builders.
* Make builders unexecutable by removing the hash-bang line and
  execute permission.
* Convert calls to `derivation' to `mkDerivation'.
* Remove `system' and `stdenv' attributes from calls to
  `mkDerivation'.  These transformations were all done automatically,
  so it is quite possible I broke stuff.
* Put the `mkDerivation' function in stdenv/generic.

svn path=/nixpkgs/trunk/; revision=874
Diffstat (limited to 'pkgs/stdenv/generic')
-rw-r--r--[-rwxr-xr-x]pkgs/stdenv/generic/builder.sh2
-rw-r--r--pkgs/stdenv/generic/default-builder.sh2
-rw-r--r--pkgs/stdenv/generic/default.nix34
3 files changed, 27 insertions, 11 deletions
diff --git a/pkgs/stdenv/generic/builder.sh b/pkgs/stdenv/generic/builder.sh
index 20145df08ab5..b3d464322499 100755..100644
--- a/pkgs/stdenv/generic/builder.sh
+++ b/pkgs/stdenv/generic/builder.sh
@@ -1,5 +1,3 @@
-#! /bin/sh
-
 p1=$param1
 p2=$param2
 p3=$param3
diff --git a/pkgs/stdenv/generic/default-builder.sh b/pkgs/stdenv/generic/default-builder.sh
new file mode 100644
index 000000000000..9a297c67f6e8
--- /dev/null
+++ b/pkgs/stdenv/generic/default-builder.sh
@@ -0,0 +1,2 @@
+. $stdenv/setup
+genericBuild
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 9c877252e2be..d7b953ffb056 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -1,17 +1,33 @@
-{ stdenv, name, preHook ? null, postHook ? null, initialPath, gcc
+{ stdenv, name, preHook ? null, postHook ? null, initialPath, gcc, bash
 , param1 ? "", param2 ? "", param3 ? "", param4 ? "", param5 ? ""
 }:
 
-derivation {
-  inherit stdenv name;
-  system = stdenv.system;
+let {
 
-  builder = ./builder.sh;
+  body =
 
-  setup = ./setup.sh;
+    stdenv.mkDerivation {
+      inherit name;
 
-  inherit preHook postHook initialPath gcc;
+      builder = ./builder.sh;
+
+      setup = ./setup.sh;
+
+      inherit preHook postHook initialPath gcc;
+
+      # TODO: make this more elegant.
+      inherit param1 param2 param3 param4 param5;
+    }
+
+    # Add a utility function to produce derivations that use this
+    # stdenv and its the bash shell.
+    // {
+      mkDerivation = attrs: derivation (attrs // {
+        builder = bash;
+        args = ["-e" (if attrs ? builder then attrs.builder else ./default-builder.sh)];
+        stdenv = body;
+        system = body.system;
+      });
+    };
 
-  # TODO: make this more elegant.
-  inherit param1 param2 param3 param4 param5;
 }