This removes any meaning from the definitions of MODULES, BINARIES, FILES, and SCRIPT within install hooks. It also removed the deprecated checked_modules() function, which is replaced by add_checked_modules().
Signed-off-by: Dave Reisner dreisner@archlinux.org --- functions | 68 +++++++++++++++++--------------------------------------- mkinitcpio | 3 +-- mkinitcpio.8.txt | 3 +-- 3 files changed, 22 insertions(+), 52 deletions(-)
diff --git a/functions b/functions index 8c44e43..e370190 100644 --- a/functions +++ b/functions @@ -288,21 +288,6 @@ add_checked_modules() { return $(( !${#mods[*]} )) }
-checked_modules() { - # Returns a list of modules filtered by the list of autodetected modules. - # $@: arguments to all_modules - # - # DEPRECATED: Use add_checked_modules instead - # - - if (( ${#_autodetect_cache[*]} )); then - all_modules "$@" | grep -xFf <(printf '%s\n' "${!_autodetect_cache[@]}") - return 1 - else - all_modules "$@" - fi -} - add_module() { # Add a kernel module to the initcpio image. Dependencies will be # discovered and added. @@ -466,12 +451,9 @@ add_file() {
add_runscript() { # Adds a runtime script to the initcpio image. The name is derived from the - # script which calls it, though it can be overriden by passing the name of - # the runtime hook as the first argument to the function. This shouldn't be - # needed and is only left for legacy compatability reasons. It may not work - # in future versions of mkinitcpio. + # script which calls it as the basename of the caller.
- local funcs fn script hookname=${SCRIPT:-${BASH_SOURCE[1]##*/}} + local funcs fn script hookname=${BASH_SOURCE[1]##*/}
if ! script=$(find_in_dirs "$hookname" "${_d_hooks[@]}"); then error "runtime script for `%s' not found" "$hookname" @@ -554,38 +536,16 @@ add_binary() { return 0 }
-parse_hook() { - # parse key global variables set by install hooks. This function is called - # prior to the start of hook processing, and after each hook's build - # function is run. +parse_config() { + # parse key global variables set by the config file.
+ set -f map add_module $MODULES map add_binary $BINARIES map add_file $FILES + set +f
- if [[ $SCRIPT ]]; then - add_runscript "$SCRIPT" - fi -} - -find_in_dirs() { - local dir - - for dir in "${@:2}"; do - if [[ -e $dir/$1 ]]; then - printf '%s' "$dir/$1" - return 0 - fi - done - - return 1 -} - -write_image_config() { - # write the config as runtime config and as a pristine build config - # (for audting purposes) to the image. - - tee "$BUILDROOT/buildconfig" < "$_f_config" | { + tee "$BUILDROOT/buildconfig" < "$1" | { . /dev/stdin
# sanitize of any extra whitespace @@ -604,6 +564,19 @@ write_image_config() { } >"$BUILDROOT/config" }
+find_in_dirs() { + local dir + + for dir in "${@:2}"; do + if [[ -e $dir/$1 ]]; then + printf '%s' "$dir/$1" + return 0 + fi + done + + return 1 +} + initialize_buildroot() { # creates a temporary directory for the buildroot and initialize it with a # basic set of necessary directories and symlinks @@ -673,7 +646,6 @@ run_build_hook() { # run msg2 "Running build hook: [%s]" "${script##*/}" build - parse_hook }
# vim: set ft=sh ts=4 sw=4 et: diff --git a/mkinitcpio b/mkinitcpio index 27902f1..beb5022 100755 --- a/mkinitcpio +++ b/mkinitcpio @@ -428,8 +428,7 @@ fi map run_build_hook "${_hooks[@]}" || (( ++_builderrors ))
# process config file -parse_hook -write_image_config +parse_config "$_f_config"
# switch out the error handler to catch all errors trap -- RETURN diff --git a/mkinitcpio.8.txt b/mkinitcpio.8.txt index 0c415a6..f19250f 100644 --- a/mkinitcpio.8.txt +++ b/mkinitcpio.8.txt @@ -160,8 +160,7 @@ functions exist to facilitate this.
Adds a runtime hook to the image, which is a busybox ash compatible shell script. The name of the script is guaranteed to match the name of the hook the - script is called from. It *can* be overriden, but this is not recommended, as - this only exists for legacy compatibility. + script is called from.
About Runtime Hooks -------------------