Signed-off-by: Dave Reisner <dreisner@archlinux.org> --- I can see this being useful for one-off images made outside the context of a preset, but this might also just be some oddball feature that never gets used. mkinitcpio | 8 +++++--- mkinitcpio.5.txt | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mkinitcpio b/mkinitcpio index c5c174b..e46306c 100755 --- a/mkinitcpio +++ b/mkinitcpio @@ -24,7 +24,7 @@ COMPRESSION=gzip declare TMPDIR= BASEDIR= MODULE_FILE= GENIMG= PRESET= COMPRESSION_OPTIONS= BUILDROOT= declare NC= BOLD= BLUE= GREEN= RED= YELLOW= declare -i QUIET=1 SHOW_AUTOMODS=0 SAVELIST=0 COLOR=1 -declare -a SKIPHOOKS ADDED_MODULES MODPATHS +declare -a ADDHOOKS SKIPHOOKS ADDED_MODULES MODPATHS # Add /{,usr}/sbin to path # works around undetected problems like in #8448 @@ -40,6 +40,7 @@ mkinitcpio %VERSION% usage: ${0##*/} [options] Options: + -A ADDHOOKS Add ADDHOOKS (comma-separated) when building the image. -b BASEDIR Use BASEDIR. default: / -c CONFIG Use CONFIG file. default: /etc/mkinitcpio.conf -g IMAGE Generate a cpio image as IMAGE. default: no @@ -97,8 +98,9 @@ get_kernver() { trap 'cleanup 130' INT trap 'cleanup 143' TERM -while getopts ':c:k:sb:g:p:m:nvH:LMhS:t:z:' arg; do +while getopts ':A:c:k:sb:g:p:m:nvH:LMhS:t:z:' arg; do case "${arg}" in + A) IFS=, read -r -a ADDHOOKS <<< "$OPTARG" ;; c) CONFIG="${OPTARG}" ;; k) optkver=$OPTARG ;; s) SAVELIST=1; ;; @@ -283,7 +285,7 @@ trap '[[ $FUNCNAME = parse_hook ]] && (( ++builderrors ))' ERR #parse 'global' hook, as defined in ${CONFIG} parse_hook -for hook in ${HOOKS}; do +for hook in ${HOOKS} "${ADDHOOKS[@]}"; do in_array "$hook" "${SKIPHOOKS[@]}" && continue unset MODULES BINARIES FILES SCRIPT build () { error "$hook: no build function..."; } diff --git a/mkinitcpio.5.txt b/mkinitcpio.5.txt index f963dac..d233957 100644 --- a/mkinitcpio.5.txt +++ b/mkinitcpio.5.txt @@ -24,6 +24,11 @@ other features. Options ------- +*-A* 'hooks':: + Add 'hooks' when generating the image. Several hooks should be + comma-separated. These will be added, in order, after any other hooks + are processed from the config file. + *-b* 'basedir':: Use 'basedir' as a starting point for gathering information about the currently running system. Default: /. -- 1.7.6