Fixed a few broken command line switches
Change-Id: I54db710450972aab2d122e21cbea154366f07f9d
diff --git a/gerrit/bin/gerrit.sh b/gerrit/bin/gerrit.sh
index 4900ab1..3463960 100755
--- a/gerrit/bin/gerrit.sh
+++ b/gerrit/bin/gerrit.sh
@@ -27,10 +27,23 @@
##--------------------##
##---] INCLUDES [---##
##--------------------##
-source "${libdir}/filters/status.sh"
+source "${libdir}/filters/include.sh"
source "${libdir}/usage/include.sh"
-# source "${libdir}/usage/main.sh"
+## --------------------------------------------------------------------
+## --------------------------------------------------------------------
+function error()
+{
+ cat <<ERROR
+
+** -----------------------------------------------------------------------
+** IAM: ${FUNCNAME[1]}
+** ERROR: $@
+** -----------------------------------------------------------------------
+ERROR
+ echo
+ exit 1
+}
## -----------------------------------------------------------------------
## -----------------------------------------------------------------------
@@ -86,7 +99,56 @@
return
}
+## -----------------------------------------------------------------------
+## Usage: $0 --status open --reviewer [u]
+## -----------------------------------------------------------------------
+function do_gerrit_review()
+{
+ local -n ref_urls=$1 ; shift
+ local -n ref_repos=$1 ; shift
+ local -n ref_status=$1 ; shift
+ ref_urls=()
+
+ # local stem='https://gerrit.opencord.org/q/project:voltha-go+status:open'
+ local stem='https://gerrit.opencord.org/q/'
+
+ local -a common=()
+ [[ -v me ]] && { common+=('reviewer:self') }
+
+ for reviewer in "${argv_reviewer[@]}"; do
+ common+=("reviewer:${reviewer}")
+ done
+
+ local repo
+ for repo in "${ref_repos[@]}";
+ do
+ local -a args=()
+ args+=("project:${repo}")
+ args+=("${common[@]}")
+
+ local url="$stem"
+ url+="$(join_by '+' "${args[@]}")"
+ ref_urls+=("$url")
+ done
+
+ ## If not repo specific then query all
+ if [[ ${#ref_urls[@]} -eq 0 ]]; then
+ local -a args=()
+ args=("${common[@]}")
+
+ local url="$stem"
+ url+="$(join_by '+' "${args[@]}")"
+ ref_urls+=("$url")
+ fi
+
+ # --debug) declare -g -i debug=1 ;;
+ # --search) declare -g -i search=1 ;;
+ # --wip) declare -g -i status_is_open=1 ;;
+
+ return
+}
+
## -----------------------------------------------------------------------
## Intent: Iterate over --admin values and generate repositories
## -----------------------------------------------------------------------
@@ -283,7 +345,7 @@
--search) declare -g -i argv_search=1 ;;
--me)
- # declare -g -i argv_me=1
+ declare -g -i argv_me=1
me+=("owner:${USER}@opennetworking.org")
;;
@@ -402,13 +464,20 @@
--patch*)
repo="$1"; shift
- urls+=("https://gerrit.opencord.org/q/${repo}+stats:open")
+ urls+=("https://gerrit.opencord.org/q/${repo}+status:open")
# https://gerrit.opencord.org/q/voltha-openolt-adapter-go
;;
- --review)
- urls+=('https://gerrit.opencord.org/c/aether-ci-management/+/34900')
+
+ --reviewer)
+ arg="$1"; shift
+ add_filter_reviewer "$arg"
+
+ declare -g -i argv_review=1
+ # Replace with: set -- '--review' "$@"
;;
+ --review) declare -g -i argv_review=1 ;;
+
--ver*)
[[ $# -eq 0 ]] && { error "Usage: $arg [str]"; }
arg="$1"; shift
@@ -470,12 +539,18 @@
esac
done
-[[ -v argv_search ]] && { do_gerrit_search urls repos argv_status; }
-[[ -v admins ]] && { gen_admin_urls urls repos admins; }
+[[ -v argv_search ]] && { do_gerrit_search urls repos argv_status; }
+[[ -v admins ]] && { gen_admin_urls urls repos admins; }
+
+# -----------------------------------------------------------------------
+# Generalize:
+# o --review function like a simple search filter.
+# o piece missing is defining query URL stem= when needed.
+# -----------------------------------------------------------------------
+[[ -v argv_review ]] && { do_gerrit_review urls repos argv_status; }
## are --views working ?
[[ "${#views[@]}" -gt 0 ]] && { gen_view_urls urls repos views; }
-# [[ ! -v views ]] && { echo 'called'; gen_view_urls urls repos views; }
if [[ ${#urls[@]} -eq 0 ]]; then
declare -a show_all=() # show all for visiblity