diff options
author | Dave Reisner <dreisner@archlinux.org> | 2012-05-18 04:01:28 +0200 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2012-05-18 15:39:04 +0200 |
commit | 0ccb5f6e037bcbb0817cdb76274a37624c28cb5a (patch) | |
tree | 063e366e2c142ab73029cc6718e310052fa1b0b6 | |
parent | a68d47b4851828688275921e94b9a9e6bef80ca3 (diff) | |
download | mkinitcpio-0ccb5f6e037bcbb0817cdb76274a37624c28cb5a.tar.gz mkinitcpio-0ccb5f6e037bcbb0817cdb76274a37624c28cb5a.tar.xz |
mkinitcpio: write image config after install hooks
Break this out of install/base into a separate function. We need to be
able to read from the RUNHOOKS array to accurately specify which hooks
to execute at runtime.
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
-rw-r--r-- | functions | 20 | ||||
-rw-r--r-- | install/base | 15 | ||||
-rwxr-xr-x | mkinitcpio | 2 |
3 files changed, 22 insertions, 15 deletions
@@ -547,4 +547,24 @@ find_in_dirs() { return 1 } +write_image_config() { + # write a config file. re-source the config as we can't guarantee the + # environment hasn't been modified, but subshell it so it doesn't disturb + # anyone else. + ( + . "$CONFIG" + + # sanitize of any extra whitespace + read -r -a modules <<< "$MODULES" + (( ${#modules[*]} )) && printf 'MODULES="%s"\n' "${modules[*]%\?}" + + printf '%s="%s"\n' \ + 'EARLYHOOKS' "${RUNHOOKS['early']# }" \ + 'HOOKS' "${RUNHOOKS['hooks']# }" \ + 'LATEHOOKS' "${RUNHOOKS['late']# }" \ + 'CLEANUPHOOKS' "${RUNHOOKS['cleanup']% }" + + ) >"$BUILDROOT/config" +} + # vim: set ft=sh ts=4 sw=4 et: diff --git a/install/base b/install/base index 7eff431..1df209b 100644 --- a/install/base +++ b/install/base @@ -37,21 +37,6 @@ build() { add_file "/usr/lib/initcpio/init_functions" "/init_functions" add_file "/usr/lib/initcpio/init" "/init" add_file "/usr/lib/modprobe.d/usb-load-ehci-first.conf" - - # write a new config file. re-source the config as we can't guarantee the - # environment hasn't been modified, but subshell it so it doesn't disturb - # anyone else. - ( - . "$CONFIG" - - # sanitize of any extra whitespace - read -r -a modules <<< "$MODULES" - - { - (( ${#modules[*]} )) && printf 'MODULES="%s"\n' "${modules[*]%\?}" - (( ${#hooks[*]} )) && printf 'HOOKS="%s"\n' "${hooks[*]}" - } >"$BUILDROOT/config" - ) } help() { @@ -399,6 +399,8 @@ for var in cfg_{MODULES,BINARIES,FILES}; do done parse_hook +write_image_config + # switch out the error handler to catch all errors trap -- RETURN trap '(( ++builderrors ))' ERR |