diff options
author | Dave Reisner <dreisner@archlinux.org> | 2012-09-26 22:04:58 +0200 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2012-09-30 00:06:07 +0200 |
commit | cf4188d69685161a8a676bba25db5d6a92e9f3ab (patch) | |
tree | 247fc2fd35c508a8fec39f15f8d27c610ca32058 | |
parent | c3d068b9ff96b2897cec6a0874ff47e595b77de4 (diff) | |
download | mkinitcpio-cf4188d69685161a8a676bba25db5d6a92e9f3ab.tar.gz mkinitcpio-cf4188d69685161a8a676bba25db5d6a92e9f3ab.tar.xz |
functions: always treat ADDED_MODULES as a hash
Overlooked in b8d9c5cd2753e9. This change also assigns a value of "2" to
builtin modules which are added to the the ADDED_MODULES array, to
distinguish them from actual modules on disk. Using this, we can avoid
adding builtins to the image's runtime config.
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
-rw-r--r-- | functions | 8 | ||||
-rwxr-xr-x | mkinitcpio | 2 |
2 files changed, 5 insertions, 5 deletions
@@ -313,7 +313,7 @@ add_module() { module=${1%.ko*} # skip expensive stuff if this module has already been added - (( ${ADDED_MODULES["$module"]} )) && return + (( ADDED_MODULES["${module//-/_}"] )) && return while IFS=':= ' read -r -d '' field value; do case "$field" in @@ -602,9 +602,9 @@ write_image_config() { # sanitize of any extra whitespace read -ra modules <<<"${MODULES//-/_}" - for mod in "${modules[@]}"; do - in_array "${mod%\?}" "${ADDED_MODULES[@]}" || continue - add+=("${mod%\?}") + for mod in "${modules[@]%\?}"; do + # only add real modules (2 == builtin) + (( ADDED_MODULES["$mod"] == 1 )) && add+=("$mod") done (( ${#add[*]} )) && printf 'MODULES="%s"\n' "${add[*]}" @@ -346,7 +346,7 @@ trap '(( $? )) && [[ $FUNCNAME = add_* ]] && (( ++builderrors ))' RETURN # prime the ADDED_MODULES list with the builtins for this kernel if [[ -r $MODULEDIR/modules.builtin ]]; then while read -a path; do - ADDED_MODULES["${path[-1]%.ko}"]=1 + ADDED_MODULES["${path[-1]%.ko}"]=2 done <"$MODULEDIR/modules.builtin" fi |