blob: b8d615f29cfe02aebdddbcdeebdfabbd277a0e5b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#!/bin/bash
# jpokorny@redhat.com (will be pleased to know about further enhancements)
# usage:
# 1. optionally git clone git://git.fedorahosted.org/git/python-bugzilla
# (system-wide can also be used)
# 2. open ~/.watchbzrc for editing
# - set BUGZILLA_ROOT when using cloned python-bugzilla
# - optionally set STATUS and COMPONENT as per example
# (or pass such string as a 1st argument)
# - optionally set BZUSER to avoid the need to login manually before
# the "watch session"; you can set BZPASSWORD as well but be careful!
HERE=$(dirname $0)
BUGZILLA=$(which bugzilla 2>/dev/null)
BUGZILLA_ROOT=/usr
# example defaults, modify via ~/.watchbzrc
COMPONENT=luci,ricci,clustermon,conga,sunzi
STATUS=OPEN
REFRESH_INTERVAL=600 # [s], better not to drain bugzilla's power...
[ -f ~/.watchbzrc ] && source ~/.watchbzrc
if [ -z "$BUGZILLA" ]; then
# BUGZILLA_ROOT (path to local repo) should rather be set in ~/.watchbzrc
BUGZILLA="${BUGZILLA_ROOT}/bin/bugzilla"
export PYTHONPATH="${BUGZILLA_ROOT}:${PYTHONPATH}"
fi
# hardcoded for now (note the SEP - OUTPUT_FMT relationship)
SEP=@@@
WIDTH=$(( $(stty size | cut -d' ' -f2) - 1 ))
if [ $# -ge 1 ]; then
if [[ "$1" = -* ]]; then
STATUS=$(echo "$1" | cut -c2-)
shift
fi
if [ $# -ge 1 ]; then
COMPONENT="$1"
fi
fi
# omit component if only single one queried
echo $COMPONENT | grep -q ','
if [ $? -eq 0 ]; then
OUTPUT_FMT="%{component}$SEP%{bug_id}$SEP%{product}$SEP%{priority}$SEP%{status}$SEP%{flags}$SEP%{short_desc}"
else
OUTPUT_FMT="%{bug_id}$SEP%{product}$SEP%{priority}$SEP%{status}$SEP%{flags}$SEP%{short_desc}"
fi
# login when available
if [ -n "$BZUSER" ]; then
"$BUGZILLA" login "$BZUSER" $BZPASSWORD
if [ $? -ne 0 ]; then
echo "Cannot log in"
exit 2
fi
fi
#sh -c \
watch -t --interval $REFRESH_INTERVAL \
"$BUGZILLA query -c $COMPONENT -t $STATUS --outputformat $OUTPUT_FMT \
| sed -u \
-e \"s/${SEP}Red Hat Enterprise Linux /${SEP}EL/\" \
-e \"s/${SEP}Fedora/${SEP} F /\" \
-e \"s/${SEP}NEW/${SEP}N/\" \
-e \"s/${SEP}ASSIGNED/${SEP}A/\" \
-e \"s/${SEP}POST/${SEP}P/\" \
-e \"s/${SEP}MODIFIED/${SEP}M/\" \
-e \"s/${SEP}ON_QA/${SEP}Q/\" \
-e \"s/${SEP}ON_DEV/${SEP}D/\" \
-e \"s/${SEP}VERIFIED/${SEP}V/\" \
-e \"s/${SEP}RELEASE_PENDING/${SEP}R/\" \
-e \"s/${SEP}CLOSED/${SEP}C/\" \
-e \"s/${SEP}urgent/${SEP}!!!/\" \
-e \"s/${SEP}high/${SEP}!!/\" \
-e \"s/${SEP}medium/${SEP} ! /\" \
-e \"s/${SEP}low/${SEP} ~ /\" \
-e \"s/${SEP}unspecified/${SEP} ? /\" \
-e \"s/qa_ack/QA/\" \
-e \"s/pm_ack/PM/\" \
-e \"s/devel_ack/D/\" \
-e \"s/needinfo/I/\" \
-e \"s/exception/E/\" \
-e \"s/blocker/BL/\" \
-e \"s/requires_release_note/RN/\" \
-e \"s/rhel-//\" \
-e \"s/None//\" \
| ${HERE}/table-data $SEP | cut -c-$WIDTH"
# todo: colours for priorities (rhbz#801626)
#-e 's/\(urgent\)/\^\[\[31m\1\^\[\[0m/' \
|