summary refs log tree commit diff
path: root/pkgs/stdenv/generic/setup.sh
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-07-08 13:47:09 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-08-09 12:45:53 +0200
commit2def8e74990d89bd91b8943c00110027a1f5fafa (patch)
treedd6769810db26cae6d8f3d82288f437985c81e61 /pkgs/stdenv/generic/setup.sh
parente3875297fac671f20feb803306e7c55789ac749e (diff)
downloadnixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.tar
nixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.tar.gz
nixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.tar.bz2
nixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.tar.lz
nixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.tar.xz
nixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.tar.zst
nixlib-2def8e74990d89bd91b8943c00110027a1f5fafa.zip
Remove addHook
Just use bash arrays directly. I.e.

  addHook preConfigure myPreConfigure

is now

  preConfigureHooks+=(myPreConfigure)
Diffstat (limited to 'pkgs/stdenv/generic/setup.sh')
-rw-r--r--pkgs/stdenv/generic/setup.sh27
1 files changed, 9 insertions, 18 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 6ed94673ae70..cdebf6e4b27e 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -7,24 +7,15 @@ set -e
 # Hook handling.
 
 
-# Add the specified shell code to the named hook, e.g. ‘addHook
-# preConfigure "rm ./foo; touch ./bar"’.
-addHook() {
-    local hookName="$1"
-    local hookCode="$2"
-    eval "_${hookName}_hooks+=(\"\$hookCode\")"
-}
-
-
 # Run all hooks with the specified name in the order in which they
 # were added, stopping if any fails (returns a non-zero exit
-# code). Hooks are added using ‘addHooks <hookName> <code>’, or
-# implicitly by defining a shell function or variable <hookName>. Note
-# that the latter takes precedence over hooks added via ‘addHooks’.
+# code). The hooks for <hookName> are the shell function or variable
+# <hookName>, and the values of the shell array ‘<hookName>Hooks’.
 runHook() {
     local hookName="$1"
-    local var="_${hookName}_hooks"
-    eval "local -a dummy=(\"\${_${hookName}_hooks[@]}\")"
+    local var="$hookName"
+    if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
+    eval "local -a dummy=(\"\${$var[@]}\")"
     for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do
         if ! _eval "$hook"; then return 1; fi
     done
@@ -36,8 +27,9 @@ runHook() {
 # zero exit code). If none succeed, return a non-zero exit code.
 runOneHook() {
     local hookName="$1"
-    local var="_${hookName}_hooks"
-    eval "local -a dummy=(\"\${_${hookName}_hooks[@]}\")"
+    local var="$hookName"
+    if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
+    eval "local -a dummy=(\"\${$var[@]}\")"
     for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do
         if _eval "$hook"; then
             return 0
@@ -465,7 +457,7 @@ stripHash() {
 }
 
 
-addHook unpackCmd _defaultUnpack
+unpackCmdHooks+=(_defaultUnpack)
 _defaultUnpack() {
     if [ -d "$curSrc" ]; then
 
@@ -856,7 +848,6 @@ genericBuild() {
 
 
 # Execute the post-hooks.
-for i in "${postHooks[@]}"; do $i; done
 runHook postHook