Modify switch handling to centralize parse and validation for --{foo}-is-empty
Signed-off-by: Joey Armstrong <jarmstrong@linuxfoundation.org>
Change-Id: Ia8b955f5451b5b7938d48abdea681e5c8396b376
diff --git a/jira/bin/jira-search.sh b/jira/bin/jira-search.sh
index 751edb6..9015a38 100755
--- a/jira/bin/jira-search.sh
+++ b/jira/bin/jira-search.sh
@@ -539,10 +539,6 @@
while [ $# -gt 0 ]; do
-# if [ ${#suffix0[@]} -gt 0 ]; then
-# suffix0+=('AND')
-# fi
-
arg="$1"; shift
banner "ARG=[$arg], \$@=[$@]"
@@ -555,31 +551,21 @@
'--help') usage; exit 0 ;;
'--help-'*) help_with "${arg/--help-/}" ;;
'--usage-'*) help_usage_show "${arg/--usage-/}" ;;
+
+ *'-is-empty'*)
+ is_switch_valid__is_empty "$arg"
- '--'*'-is-empty')
declare -a args=()
- args+=('--is-empty')
+ arg="${arg:2}" # remove prefix --
+ arg="${arg%-is-empty}" # remove suffix token-name
- arg="${arg:2}" # remove prefix --
- arg="${arg%-is-empty}" # remove suffix token-name
- args+=("$arg")
+ ## Rewrite switch to bypass is-empty and match --required
+ args+=("--${arg}+is-empty") # ARGV: gen JCL tokens
[[ $# -gt 0 ]] && { args+=("$@"); }
- set -- "${args[@]}"
+ set -- "${args[@]}" # --is-empty resolved
;;
-
- '--is-empty')
- declare val="$1"; shift
- declare -a valid=()
- valid+=('label')
- if [[ " ${valid[@]} " =~ " ${val} " ]]; then
- is_empty+=("$val")
- else
- error "Detected invalid --is-empty switch [$arg]"
- fi
- ;;
-
##-----------------##
##---] MODES [---##
##-----------------##
@@ -703,7 +689,7 @@
esac
;;
- '--resolved-'*)
+ '--resolved'*) # [-+]
# function get_jql_reasons()
case "$arg" in
@@ -711,7 +697,10 @@
*end) declare -g resolved_end="$1"; shift ;;
*not-empty) declare -g resolved_not_empty="$1" ;;
- *empty) declare -g resolved_is_empty="$1" ;;
+ *'empty')
+ banner "Detected [$arg]"
+ declare -g resolved_is_empty="$1"
+ ;;
*excl)
[[ ! -v resolved_excl ]] && { declare -g -a resolved_excl=(); }
@@ -823,16 +812,19 @@
[[ -v components ]] && { do_components components suffix0; }
do_labels labels_incl labels_excl suffix0
do_text text suffix0
-do_resolved suffix0
+
+get_jcl_resolved suffix0
+ # do_resolved suffix0
+
do_fixversion suffix0
-declare -p suffix0
-
-if [[ -v getopt_argv_AND ]]; then
- query="$(join_by 'AND' "${suffix0[0]}")"
-elif [[ -v getopt_argv_OR ]]; then
+declare -p getopt_argv_any_OR
+if [[ -v getopt_argv_any_OR ]]; then
query="$(join_by 'OR' "${suffix0[0]}")"
+elif [[ -v getopt_argv_any_AND ]]; then
+ query="$(join_by 'AND' "${suffix0[0]}")"
else
+# query="$(join_by 'OR' "${suffix0[0]}")"
error "Ambiguous query [argv needs: --and or --or]"
fi