Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/shlib.sh14
-rw-r--r--modules/custom_packages/kspkglist.70.extras.sh14
-rw-r--r--modules/custom_scripts/kspost.80.nochroot.custom_scripts.sh9
-rw-r--r--modules/sd_card_image/image.50.makefs.sh13
-rw-r--r--modules/sd_card_image/postimage.50.makezd.sh12
-rw-r--r--modules/sugar_activities_extra/kspost.60.nochroot.activities.sh17
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