-# Catenate TAG selections by 'OR'
-if [[ ! -z "$TAGS" ]]; then printf -v INCLUDES " --include %s " "${TAGS[@]}"; fi
-if [[ ! -z "$ETAGS" ]]; then printf -v EXCLUDES " --exclude %s " "${ETAGS[@]}"; fi
+# Catenate TAG selections
+EXPANDED_TAGS=()
+for TAG in "${TAGS[@]}"; do
+ if [[ ${TAG} == "!"* ]]; then
+ EXPANDED_TAGS+=(" --exclude ${TAG#$"!"} ")
+ else
+ EXPANDED_TAGS+=(" --include ${TAG} ")
+ fi
+done