From e839bbbb50d4969cfe68f95136354b0a6221ca7b Mon Sep 17 00:00:00 2001 From: Laurent Goderre Date: Mon, 26 Mar 2018 10:18:32 -0400 Subject: [PATCH] Modified the test build to accept a list of variants to slimit the build --- functions.sh | 25 ++++++++++++++++++++++--- generate-stackbrew-library.sh | 4 ++-- test-build.sh | 4 ++-- update.sh | 4 ++-- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/functions.sh b/functions.sh index 8e309767..f2e1ae86 100755 --- a/functions.sh +++ b/functions.sh @@ -56,10 +56,29 @@ function get_variants() { shift local arch - arch=$(get_arch) + local availablevariants + local variantsfilter local variants - variants=$(grep "^$arch" "$dir/architectures" | sed -E 's/'"$arch"'[[:space:]]*//' | sed -E 's/,/ /g') - echo "$variants" + + arch=$(get_arch) + variantsfilter=( "$@" ) + IFS=' ' read -ra availablevariants <<< "$(grep "^$arch" "$dir/architectures" | sed -E 's/'"$arch"'[[:space:]]*//' | sed -E 's/,/ /g')" + + if [ ${#variantsfilter[@]} -gt 0 ]; then + for variant1 in "${availablevariants[@]}"; do + for variant2 in "${variantsfilter[@]}"; do + if [[ "$variant1" = "$variant2" ]]; then + variants+=("$variant1") + fi + done + done + + if [ ${#variants[@]} -gt 0 ]; then + echo "${variants[@]}" + fi + else + echo "${availablevariants[@]}" + fi } # Get supported architectures for a specific version and variant diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 20d730e2..f892cf00 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -70,8 +70,8 @@ for version in "${versions[@]}"; do # Get supported variants according to the target architecture. # See details in function.sh - variants=$(get_variants "$(dirname "$version")") - for variant in $variants; do + IFS=' ' read -ra variants <<< "$(get_variants "$(dirname "$version")")" + for variant in "${variants[@]}"; do # Skip non-docker directories [ -f "$version/$variant/Dockerfile" ] || continue diff --git a/test-build.sh b/test-build.sh index b0a7bf5b..004bac3a 100755 --- a/test-build.sh +++ b/test-build.sh @@ -53,9 +53,9 @@ for version in "${versions[@]}"; do # Get supported variants according to the target architecture. # See details in function.sh - variants=$(get_variants "$(dirname "$version")") + IFS=' ' read -ra variants <<< "$(IFS=','; get_variants "$(dirname "$version")" "$2")" - for variant in $variants; do + for variant in "${variants[@]}"; do # Skip non-docker directories [ -f "$version/$variant/Dockerfile" ] || continue diff --git a/update.sh b/update.sh index 214524a0..d23d9df0 100755 --- a/update.sh +++ b/update.sh @@ -85,9 +85,9 @@ for version in "${versions[@]}"; do # Get supported variants according the target architecture # See details in function.sh - variants=$(get_variants "$parentpath") + IFS=' ' read -ra variants <<< "$(get_variants "$parentpath")" - for variant in $variants; do + for variant in "${variants[@]}"; do # Skip non-docker directories [ -f "$version/$variant/Dockerfile" ] || continue add_stage "$baseuri" "$version" "$variant"