diff options
author | Dave Reisner <d@falconindy.com> | 2011-06-06 16:41:41 +0200 |
---|---|---|
committer | Dave Reisner <d@falconindy.com> | 2011-06-16 22:16:47 +0200 |
commit | 26353278549c680e252e407e75ce4ab3fda3386c (patch) | |
tree | 60135d46797dbd3da513c2749996576a392d948c | |
parent | 30121576b576395244b0e4564722abb3d2a44c4c (diff) | |
download | mkinitcpio-26353278549c680e252e407e75ce4ab3fda3386c.tar.gz mkinitcpio-26353278549c680e252e407e75ce4ab3fda3386c.tar.xz |
mkinitcpio: bashify preset build loop
This mainly consists of removing all traces of eval and building the
options into an array instead a simple variable. We also make sure that
the SCRIPT var is unset, as it may be populated during hook processing.
Signed-off-by: Dave Reisner <d@falconindy.com>
-rwxr-xr-x | mkinitcpio | 55 |
1 files changed, 26 insertions, 29 deletions
@@ -150,53 +150,50 @@ if [[ $optkver ]]; then fi # use preset $PRESET -if [ -n "${PRESET}" ]; then - if [ -f "${PRESETDIR}/${PRESET}.preset" ]; then +if [[ $PRESET ]]; then + if [[ -f "$PRESETDIR/$PRESET.preset" ]]; then # Use -b, -m and -v options specified earlier - PRESET_MKOPTS="${0}" - [ -n "${BASEDIR}" ] && PRESET_MKOPTS="${PRESET_MKOPTS} -b ${BASEDIR}" - [ -n "${MESSAGE}" ] && PRESET_MKOPTS="${PRESET_MKOPTS} -m \"${MESSAGE}\"" - [ "${QUIET}" = "n" ] && PRESET_MKOPTS="${PRESET_MKOPTS} -v" + declare -a preset_mkopts preset_cmd + [[ $BASEDIR ]] && preset_mkopts+=(-b "$BASEDIR") + [[ $MESSAGE ]] && preset_mkopts+=(-m "$MESSAGE") + [[ "$QUIET" = n ]] && preset_mkopts+=(-v) # Build all images - . ${PRESETDIR}/${PRESET}.preset - for p in ${PRESETS[@]}; do + . "$PRESETDIR/$PRESET.preset" + for p in "${PRESETS[@]}"; do echo "==> Building image \"${p}\"" - PRESET_CMD="${PRESET_MKOPTS}" + preset_cmd=("${preset_mkopts[@]}") - eval "PRESET_KVER=\"\${${p}_kver}\"" - [ -z "${PRESET_KVER}" ] && PRESET_KVER="${ALL_kver}" - eval "PRESET_CONFIG=\"\${${p}_config}\"" - [ -z "${PRESET_CONFIG}" ] && PRESET_CONFIG="${ALL_config}" - eval "PRESET_IMAGE=\"\${${p}_image}\"" - eval "PRESET_OPTIONS=\"\${${p}_options}\"" - - if [ -n "${PRESET_KVER}" ]; then - PRESET_CMD="${PRESET_CMD} -k ${PRESET_KVER}" + preset_kver=${p}_kver + if [[ ${!preset_kver:-$ALL_kver} ]]; then + preset_cmd+=(-k "${!preset_kver:-$ALL_kver}") else echo "==> No kernel version specified. Skipping image \"${p}\"." continue fi - if [ -n "${PRESET_CONFIG}" ]; then - PRESET_CMD="${PRESET_CMD} -c ${PRESET_CONFIG}" + preset_config=${p}_config + if [[ ${!preset_config:-$ALL_config} ]]; then + preset_cmd+=(-c "${!preset_config:-$ALL_config}") else echo "==> No configuration file specified. Skipping image \"${p}\"." continue fi - if [ -n "${PRESET_IMAGE}" ]; then - PRESET_CMD="${PRESET_CMD} -g ${PRESET_IMAGE}" + preset_image=${p}_image + if [[ ${!preset_image} ]]; then + preset_cmd+=(-g "${!preset_image}") else echo "==> No image file specified. Skipping image \"${p}\"." continue fi - if [ -n "${PRESET_OPTIONS}" ]; then - PRESET_CMD="${PRESET_CMD} ${PRESET_OPTIONS}" + preset_options=${p}_options + if [[ ${!preset_options} ]]; then + preset_cmd+=(${!preset_options}) # intentional word splitting fi - echo "==> Running command: ${PRESET_CMD}" - if eval ${PRESET_CMD}; then + echo "==> Running command: $0 ${preset_cmd[@]}" + if "$0" "${preset_cmd[@]}"; then echo "==> SUCCESS" else echo "==> FAIL" @@ -205,7 +202,7 @@ if [ -n "${PRESET}" ]; then cleanup exit 0 else - echo "Preset ${PRESET} does not exist. Exiting." + echo "Preset $PRESET does not exist. Exiting." cleanup exit 1 fi @@ -265,8 +262,8 @@ fi parse_hook for hook in ${HOOKS}; do - in_array ${hook} ${SKIPHOOKS[@]} && continue - unset MODULES BINARIES FILES + in_array "$hook" "${SKIPHOOKS[@]}" && continue + unset MODULES BINARIES FILES SCRIPT build () { msg "${hook}: no build function..."; } # Deprecation check # A hook is considered deprecated if it is a symlink |