summaryrefslogtreecommitdiffstats
path: root/contrib/cmdline/buglist
diff options
context:
space:
mode:
authorgerv%gerv.net <>2001-11-16 02:04:58 +0100
committergerv%gerv.net <>2001-11-16 02:04:58 +0100
commitbfb12ba2bc7c2979ccdc87bac306eb09f367c062 (patch)
tree43903fe9e8afaa8167a27c76c57dfea9837263a3 /contrib/cmdline/buglist
parent0f0a89556565f7cf399e53da9366b90ef5d7a815 (diff)
downloadbugzilla-bfb12ba2bc7c2979ccdc87bac306eb09f367c062.tar.gz
bugzilla-bfb12ba2bc7c2979ccdc87bac306eb09f367c062.tar.xz
Bug 6419 - command-line query tools by Andreas Franke <afranke@ags.uni-sb.de>.
Diffstat (limited to 'contrib/cmdline/buglist')
-rwxr-xr-xcontrib/cmdline/buglist94
1 files changed, 94 insertions, 0 deletions
diff --git a/contrib/cmdline/buglist b/contrib/cmdline/buglist
new file mode 100755
index 000000000..7f08286de
--- /dev/null
+++ b/contrib/cmdline/buglist
@@ -0,0 +1,94 @@
+#!/bin/sh
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Bug Tracking System.
+#
+# The Initial Developer of the Original Code is
+# Andreas Franke <afranke@ags.uni-sb.de>.
+# Corporation. Portions created by Andreas Franke are
+# Copyright (C) 2001 Andreas Franke. All
+# Rights Reserved.
+#
+# Contributor(s):
+
+conf="`dirname $0`/query.conf"
+
+query="http://bugzilla.mozilla.org/buglist.cgi?cmd=doit"
+defaultcolumnlist="severity priority platform status resolution target_milestone status_whiteboard keywords summaryfull"
+
+chart=0
+and=0
+while test "$1" != ""; do
+ arg=$1
+ arg_len=`expr length ${arg}`
+ if test `expr substr "${arg}" 1 2` == "--"; then
+ eq_pos=`expr match ${arg} '--.*='`
+ if test "${eq_pos}" == "0"; then
+ echo 'Missing value for long option '"${arg}"' ("=" not found)' 1>&2
+ exit 1;
+ fi
+ # extract option name
+ let name_len=${eq_pos}-3
+ name=`expr substr ${arg} 3 ${name_len}`
+ # extract option value
+ let val_start=${eq_pos}+1
+ let val_len=${arg_len}-${eq_pos}
+ val=`expr substr ${arg} ${val_start} ${val_len}`
+ elif test `expr substr ${arg} 1 1` == "-" &&
+ test "`expr substr ${arg} 2 1`" != ""; then
+ # extract
+ name=`expr substr ${arg} 2 1`
+ let val_len=${arg_len}-2
+ val=`expr substr ${arg} 3 ${val_len}`
+ else
+ name="default"
+ val="${arg}"
+ #echo "Unrecognized option ${arg}" 1>&2
+ #exit 1
+ fi
+
+ # find field and comparison type for option ${name}
+ field=`grep '"'${name}'"' ${conf} | awk '{printf $1}'`
+ type=`grep '"'${name}'"' ${conf} | awk '{printf $2}'`
+ if test "${field}" == "" || test "${type}" == ""; then
+ echo "Field name & comparison type not found for option ${name}." 1>&2
+ exit 1;
+ fi
+
+ or=0
+ while test "${val}" != ""; do
+ comma_idx=`expr index ${val} ,`
+ if test ${comma_idx} == "0"; then
+ val1="${val}"
+ val=""
+ else
+ let val1_len=${comma_idx}-1
+ val1=`expr substr ${val} 1 ${val1_len}`
+ val_len=`expr length ${val}`
+ let rest_start=${comma_idx}+1
+ let rest_len=${val_len}-${comma_idx}
+ val=`expr substr ${val} ${rest_start} ${rest_len}`
+ fi
+ query="${query}&field${chart}-${and}-${or}=${field}"
+ query="${query}&type${chart}-${and}-${or}=${type}"
+ query="${query}&value${chart}-${and}-${or}=${val1}"
+ #echo "----- ${name} : ${field} : ${type} : ${val1} -----" 1>&2
+ let or=${or}+1
+ done
+ let chart=${chart}+1
+ shift
+done
+
+outputfile="/dev/stdout"
+#outputfile="buglist.html"
+#\rm -f ${outputfile}
+wget -q -O ${outputfile} --header="Cookie: COLUMNLIST=${COLUMNLIST-${defaultcolumnlist}}" "${query}"
+