diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-08 13:47:09 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-09 12:45:53 +0200 |
commit | 2def8e74990d89bd91b8943c00110027a1f5fafa (patch) | |
tree | dd6769810db26cae6d8f3d82288f437985c81e61 /pkgs/stdenv/generic/setup.sh | |
parent | e3875297fac671f20feb803306e7c55789ac749e (diff) | |
download | nixlib-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.sh | 27 |
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 |