diff options
-rw-r--r-- | lib/shlib.sh | 14 | ||||
-rw-r--r-- | modules/custom_packages/kspkglist.70.extras.sh | 14 | ||||
-rw-r--r-- | modules/custom_scripts/kspost.80.nochroot.custom_scripts.sh | 9 | ||||
-rw-r--r-- | modules/sd_card_image/image.50.makefs.sh | 13 | ||||
-rw-r--r-- | modules/sd_card_image/postimage.50.makezd.sh | 12 | ||||
-rw-r--r-- | modules/sugar_activities_extra/kspost.60.nochroot.activities.sh | 17 |
6 files changed, 32 insertions, 47 deletions
diff --git a/lib/shlib.sh b/lib/shlib.sh index c984039..34982b0 100644 --- a/lib/shlib.sh +++ b/lib/shlib.sh @@ -17,6 +17,20 @@ read_config() { echo ${!vname} } +find_option_values() { + local out=$1 + local module=$2 + local option=$3 + local prefix=CFG_${module}__${option} + + while IFS= read -r -d '' line; do + local name=${line%%=*} + local value=${line#*=} + [[ $name == $prefix || $name == ${prefix}_* ]] || continue + eval "$out+=('$value')" + done < <(env --null) +} + read_buildnr() { local buildnr_path=$intermediatesdir/buildnr if [[ -e $buildnr_path ]]; then diff --git a/modules/custom_packages/kspkglist.70.extras.sh b/modules/custom_packages/kspkglist.70.extras.sh index 03be524..9aff5f1 100644 --- a/modules/custom_packages/kspkglist.70.extras.sh +++ b/modules/custom_packages/kspkglist.70.extras.sh @@ -3,24 +3,22 @@ . $OOB__shlib -while IFS= read -r -d '' line; do - [[ "${line:0:34}" == "CFG_custom_packages__add_packages_" || "${line:0:34}" == "CFG_custom_packages__add_packages=" ]] || continue - pkgs=${line#*=} +find_option_values pkgs_add custom_packages add_packages +for pkgs in "${pkgs_add[@]}"; do oIFS=$IFS IFS=$'\n\t, ' for pkg in $pkgs; do echo "$pkg" done IFS=$oIFS -done < <(env --null) +done -while IFS= read -r -d '' line; do - [[ "${line:0:34}" == "CFG_custom_packages__del_packages_" || "${line:0:34}" == "CFG_custom_packages__del_packages=" ]] || continue - pkgs=${line#*=} +find_option_values pkgs_del custom_packages del_packages +for pkgs in "${pkgs_del[@]}"; do oIFS=$IFS IFS=$'\n\t, ' for pkg in $pkgs; do echo "-$pkg" done IFS=$oIFS -done < <(env --null) +done diff --git a/modules/custom_scripts/kspost.80.nochroot.custom_scripts.sh b/modules/custom_scripts/kspost.80.nochroot.custom_scripts.sh index a9b81a0..d5559f6 100644 --- a/modules/custom_scripts/kspost.80.nochroot.custom_scripts.sh +++ b/modules/custom_scripts/kspost.80.nochroot.custom_scripts.sh @@ -3,14 +3,9 @@ . $OOB__shlib -oIFS=$IFS -IFS=$'\n' -for line in $(env); do - [[ "${line:0:34}" == "CFG_custom_scripts__custom_script_" ]] || continue - script=${line#*=} +find_option_values scripts custom_scripts custom_script +for script in "${scripts[@]}"; do echo "echo 'Executing custom script $script'" echo "export oob_config_dir=\"$oob_config_dir\"" echo "[ -x \"$script\" ] && \"$script\" || bash \"$script\"" done -IFS=$oIFS - diff --git a/modules/sd_card_image/image.50.makefs.sh b/modules/sd_card_image/image.50.makefs.sh index c081b3e..1b692f0 100644 --- a/modules/sd_card_image/image.50.makefs.sh +++ b/modules/sd_card_image/image.50.makefs.sh @@ -128,20 +128,13 @@ EOF } -found_val=0 -oIFS=$IFS -IFS=$'\n' -for line in $(env); do - [[ "${line:0:24}" == "CFG_sd_card_image__size_" ]] || continue - val=${line#*=} +find_option_values sizes sd_card_image size +for val in "${sizes[@]}"; do disk_size=${val%,*} ext= expr index "$vals" ',' &>/dev/null && ext=${vals#*,} - make_image $disk_size $ext - found_val=1 done -IFS=$oIFS # If no sizes were specified, create an image with automatic size. -[ "$found_val" = "1" ] || make_image auto +[[ ${#sizes[@]} == 0 ]] && make_image auto diff --git a/modules/sd_card_image/postimage.50.makezd.sh b/modules/sd_card_image/postimage.50.makezd.sh index dc605ea..50be9a0 100644 --- a/modules/sd_card_image/postimage.50.makezd.sh +++ b/modules/sd_card_image/postimage.50.makezd.sh @@ -37,19 +37,13 @@ function make_zd() { } -found=0 -oIFS=$IFS -IFS=$'\n' -for line in $(env); do - [[ "${line:0:24}" == "CFG_sd_card_image__size_" ]] || continue - vals=${line#*=} +find_option_values sizes sd_card_image size +for vals in "${sizes[@]}"; do disk_size=${vals%,*} ext= expr index "$vals" ',' &>/dev/null && ext=${vals#*,} make_zd $ext - found=1 done -IFS=$oIFS # When no size options were specified, we make a default image. -[ "$found" = "1" ] || make_zd +[[ ${#sizes[@]} == 0 ]] && make_zd diff --git a/modules/sugar_activities_extra/kspost.60.nochroot.activities.sh b/modules/sugar_activities_extra/kspost.60.nochroot.activities.sh index 246f8d2..eb226f7 100644 --- a/modules/sugar_activities_extra/kspost.60.nochroot.activities.sh +++ b/modules/sugar_activities_extra/kspost.60.nochroot.activities.sh @@ -5,26 +5,17 @@ cache=$cachedir/activities -oIFS=$IFS -IFS=$'\n' -for line in $(env); do - [[ "${line:0:32}" == "CFG_sugar_activities_extra__url_" ]] || continue - aurl=${line#*=} +find_option_values urls sugar_activities_extra url +for aurl in "${urls[@]}"; do echo "Downloading from $aurl ..." >&2 wget --no-verbose --inet4-only -P $cache -N "$aurl" - install_sugar_bundle $cache/$(basename "$aurl") done -for line in $(env); do - [[ "${line:0:38}" == "CFG_sugar_activities_extra__local_dir=" || "${line:0:38}" == "CFG_sugar_activities_extra__local_dir_" ]] || continue - actpath=${line#*=} +find_option_values dirs sugar_activities_extra local_dir +for actpath in "${dirs[@]}"; do [ -n "$actpath" -a -d "$actpath" ] || continue - - IFS=$oIFS for i in "$actpath"/*; do install_sugar_bundle $i done - IFS=$'\n' done -IFS=$oIFS |