From f85d28014134076217904885ea339e2f4c438df1 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Sun, 18 Nov 2012 21:32:46 -0500 Subject: obsolete old-style install hook API 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 --- 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 ------------------- -- cgit v1.2.3-24-g4f1b