Created
September 17, 2019 12:39
Revisions
-
hugocf revised this gist
Sep 17, 2019 . No changes.There are no files selected for viewing
-
hugocf created this gist
Sep 17, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,27 @@ β Error for site 'site1' because filter is 'gibberish' β Testing site 'site1' because filter is '' β Testing site 'site1' because filter is 'site1' π Skipping site 'site1' because filter is 'site2' π Skipping site 'site1' because filter is 'site3' π Skipping site 'site1' because filter is 'site4' β Error for site 'site2' because filter is 'gibberish' β Testing site 'site2' because filter is '' π Skipping site 'site2' because filter is 'site1' β Testing site 'site2' because filter is 'site2' π Skipping site 'site2' because filter is 'site3' π Skipping site 'site2' because filter is 'site4' β Error for site 'site3' because filter is 'gibberish' β Testing site 'site3' because filter is '' π Skipping site 'site3' because filter is 'site1' π Skipping site 'site3' because filter is 'site2' β Testing site 'site3' because filter is 'site3' π Skipping site 'site3' because filter is 'site4' β Error for site 'site4' because filter is 'gibberish' β Testing site 'site4' because filter is '' π Skipping site 'site4' because filter is 'site1' π Skipping site 'site4' because filter is 'site2' π Skipping site 'site4' because filter is 'site3' β Testing site 'site4' because filter is 'site4' This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,12 @@ #!/usr/bin/env bash set -u ACTION=./choose-site-to-run.sh EXPECTED=./choose-site-to-run-expected.txt RESULT=$(mktemp) $ACTION > $RESULT if diff -u $EXPECTED $RESULT; then echo "Success: all results match" fi This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,83 @@ #!/usr/bin/env bash set -u choose_site () { # choose_site_with_if ${1:-} ${2:-} # choose_site_with_case ${1:-} ${2:-} choose_site_with_guard ${1:-} ${2:-} } choose_site_with_if () { local SITE_CODE=${1:-} local FILTER=${2:-} if [[ "$FILTER" == "" || "$FILTER" == "$SITE_CODE" ]]; then echo "β Testing site '$SITE_CODE' because filter is '$FILTER'" elif [[ "$FILTER" == "site1" || "$FILTER" == "site2" || "$FILTER" == "site3" || "$FILTER" == "site4" ]]; then echo "π Skipping site '$SITE_CODE' because filter is '$FILTER'" else echo "β Error for site '$SITE_CODE' because filter is '$FILTER'" # exit 1 fi } choose_site_with_case () { local SITE_CODE=${1:-} local FILTER=${2:-} case $FILTER in "" | $SITE_CODE) echo "β Testing site '$SITE_CODE' because filter is '$FILTER'";; site1 | site2 | site3 | site4) echo "π Skipping site '$SITE_CODE' because filter is '$FILTER'";; *) echo "β Error for site '$SITE_CODE' because filter is '$FILTER'" # exit 1 ;; esac } choose_site_with_guard () { local SITE_CODE=${1:-} local FILTER=${2:-} local ALLOWED_SITE_CODES="^(site1|site2|site3|site4)$" if ! [[ $FILTER == "" || "$FILTER" =~ $ALLOWED_SITE_CODES ]]; then echo "β Error for site '$SITE_CODE' because filter is '$FILTER'" return # exit 1 fi case $FILTER in "" | $SITE_CODE) echo "β Testing site '$SITE_CODE' because filter is '$FILTER'";; *) echo "π Skipping site '$SITE_CODE' because filter is '$FILTER'";; esac } choose_site site1 gibberish choose_site site1 choose_site site1 site1 choose_site site1 site2 choose_site site1 site3 choose_site site1 site4 echo choose_site site2 gibberish choose_site site2 choose_site site2 site1 choose_site site2 site2 choose_site site2 site3 choose_site site2 site4 echo choose_site site3 gibberish choose_site site3 choose_site site3 site1 choose_site site3 site2 choose_site site3 site3 choose_site site3 site4 echo choose_site site4 gibberish choose_site site4 choose_site site4 site1 choose_site site4 site2 choose_site site4 site3 choose_site site4 site4