Remove addHook
Just use bash arrays directly. I.e. addHook preConfigure myPreConfigure is now preConfigureHooks+=(myPreConfigure)
This commit is contained in:
parent
e3875297fa
commit
2def8e7499
@ -1,4 +1,4 @@
|
|||||||
addHook fixupOutput 'if [ -z "$dontGzipMan" ]; then compressManPages "$prefix"; fi'
|
fixupOutputHooks+=('if [ -z "$dontGzipMan" ]; then compressManPages "$prefix"; fi')
|
||||||
|
|
||||||
compressManPages() {
|
compressManPages() {
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# rewritten to /nix/store/<hash>/bin/python. Interpreters that are
|
# rewritten to /nix/store/<hash>/bin/python. Interpreters that are
|
||||||
# already in the store are left untouched.
|
# already in the store are left untouched.
|
||||||
|
|
||||||
addHook fixupOutput 'if [ -z "$dontPatchShebangs" ]; then patchShebangs "$prefix"; fi'
|
fixupOutputHooks+=('if [ -z "$dontPatchShebangs" ]; then patchShebangs "$prefix"; fi')
|
||||||
|
|
||||||
patchShebangs() {
|
patchShebangs() {
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# This setup hook strips libraries and executables in the fixup phase.
|
# This setup hook strips libraries and executables in the fixup phase.
|
||||||
|
|
||||||
addHook fixupOutput _doStrip
|
fixupOutputHooks+=(_doStrip)
|
||||||
|
|
||||||
_doStrip() {
|
_doStrip() {
|
||||||
if [ -z "$dontStrip" ]; then
|
if [ -z "$dontStrip" ]; then
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# directories from the RPATH of every library or executable in every
|
# directories from the RPATH of every library or executable in every
|
||||||
# output.
|
# output.
|
||||||
|
|
||||||
addHook fixupOutput 'if [ -z "$dontPatchELF" ]; then patchELF "$prefix"; fi'
|
fixupOutputHooks+=('if [ -z "$dontPatchELF" ]; then patchELF "$prefix"; fi')
|
||||||
|
|
||||||
patchELF() {
|
patchELF() {
|
||||||
header "patching ELF executables and libraries in $prefix"
|
header "patching ELF executables and libraries in $prefix"
|
||||||
|
@ -7,24 +7,15 @@ set -e
|
|||||||
# Hook handling.
|
# 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
|
# Run all hooks with the specified name in the order in which they
|
||||||
# were added, stopping if any fails (returns a non-zero exit
|
# were added, stopping if any fails (returns a non-zero exit
|
||||||
# code). Hooks are added using ‘addHooks <hookName> <code>’, or
|
# code). The hooks for <hookName> are the shell function or variable
|
||||||
# implicitly by defining a shell function or variable <hookName>. Note
|
# <hookName>, and the values of the shell array ‘<hookName>Hooks’.
|
||||||
# that the latter takes precedence over hooks added via ‘addHooks’.
|
|
||||||
runHook() {
|
runHook() {
|
||||||
local hookName="$1"
|
local hookName="$1"
|
||||||
local var="_${hookName}_hooks"
|
local var="$hookName"
|
||||||
eval "local -a dummy=(\"\${_${hookName}_hooks[@]}\")"
|
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
|
||||||
|
eval "local -a dummy=(\"\${$var[@]}\")"
|
||||||
for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do
|
for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do
|
||||||
if ! _eval "$hook"; then return 1; fi
|
if ! _eval "$hook"; then return 1; fi
|
||||||
done
|
done
|
||||||
@ -36,8 +27,9 @@ runHook() {
|
|||||||
# zero exit code). If none succeed, return a non-zero exit code.
|
# zero exit code). If none succeed, return a non-zero exit code.
|
||||||
runOneHook() {
|
runOneHook() {
|
||||||
local hookName="$1"
|
local hookName="$1"
|
||||||
local var="_${hookName}_hooks"
|
local var="$hookName"
|
||||||
eval "local -a dummy=(\"\${_${hookName}_hooks[@]}\")"
|
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
|
||||||
|
eval "local -a dummy=(\"\${$var[@]}\")"
|
||||||
for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do
|
for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do
|
||||||
if _eval "$hook"; then
|
if _eval "$hook"; then
|
||||||
return 0
|
return 0
|
||||||
@ -465,7 +457,7 @@ stripHash() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
addHook unpackCmd _defaultUnpack
|
unpackCmdHooks+=(_defaultUnpack)
|
||||||
_defaultUnpack() {
|
_defaultUnpack() {
|
||||||
if [ -d "$curSrc" ]; then
|
if [ -d "$curSrc" ]; then
|
||||||
|
|
||||||
@ -856,7 +848,6 @@ genericBuild() {
|
|||||||
|
|
||||||
|
|
||||||
# Execute the post-hooks.
|
# Execute the post-hooks.
|
||||||
for i in "${postHooks[@]}"; do $i; done
|
|
||||||
runHook postHook
|
runHook postHook
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
addHook unpackCmd _tryUnzip
|
unpackCmdHooks+=(_tryUnzip)
|
||||||
_tryUnzip() {
|
_tryUnzip() {
|
||||||
if ! [[ "foo.zip" =~ \.zip$ ]]; then return 1; fi
|
if ! [[ "foo.zip" =~ \.zip$ ]]; then return 1; fi
|
||||||
unzip -qq "$curSrc"
|
unzip -qq "$curSrc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user