[sisyphus] bugzilla robot
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Июл 5 17:22:36 MSD 2005
On Tue, Jul 05, 2005 at 02:04:44PM +0300, Michael Shigorin wrote:
> On Tue, Jul 05, 2005 at 11:30:15AM +0400, Alexey Tourbin wrote:
> > > после dist-upgrade обновляет список пакетов, на которые подписан
> > > этот аккаунт, а перед следующим -- сбегает к первой и
> > > поинтересуется, что там открывали с предыдущего раза.
> > Кто-то хотел робота к багзилле? :) Я, правда, не понял, что
> > такое "список пакетов, на которые подписан аккаунт"
>
> Это если выставлять такое как веб-сервис -- персонализация
> называется. :) На sisyphus.ru некоторая уже есть, но без
> интеграции с какими-либо "реальными" источниками авторизационной
> информации.
>
> На самом деле все такие вещи видятся как кусочки altlinux.org,
> если опять же его командой и для команды строить.
Ох не люблю я HTTP, отчасти из-за того, что у меня сейчас нет
нормального интернта, отчасти из-за того, что HTTP плохо интегрируется
в UNIX environment.
(Ну что это такое, браузеры не умеют $EDITOR запускать для
редактирования textarea. ELinks умеет, но всё равно не очень удобно --
редактор раскрывается на всё окно, в браузер назад заглянуть нельзя.
Грубо говоря, не хватает какого-нибудь сквозного OLE.)
(http://inferno.bell-labs.com/cm/cs/who/bwk/workshop.ps.gz -- интересная
статья Kernighan'а, в которой, в частности, упоминается Visual Basic для
Windows 3.1. VB, выходит, всем хорош, though the facilities for viewing
and editing text are so primitive that one yearns for a *powerful editor
like ed*.)
----------- следующая часть -----------
#!/bin/sh -ef
export LC_ALL=C
bugzilla="https://bugzilla.altlinux.org"
columns="bug_id,component,bug_severity,bug_status,resolution,short_desc"
URL="$bugzilla/buglist.cgi?ctype=csv&columnlist=$columns"
mkdir -p bugs
wget --non-verbose --timeout=60 -O bugs/wget.out "$URL" &>bugs/wget.sucks ||
{ echo "wget sucks:"; cat bugs/wget.sucks; exit 1; } >&2
lines() { wc -l ${1+"$@"} |awk '{print$1}'; }
csv2tab='s/\t/ /g;s/^\([[:alnum:]_]\+\),"/\1\t/;s/","/\t/g;s/",,"/\tx\t/g;s/",$//;s/""/"/g'
sort -nu bugs/wget.out |sed -e "1d;$csv2tab" >bugs/list.new
total="$(lines bugs/list.new)"
if [ ! -f bugs/list.old ]; then
mv bugs/list.new bugs/list.old
echo "Initialized database ($total bugs)."
exit 0
fi
comm -13 bugs/list.old bugs/list.new >bugs/plus
comm -23 bugs/list.old bugs/list.new >bugs/minus
tab="$(printf \\t)"
join -t"$tab" bugs/minus bugs/plus >bugs/updated
join -t"$tab" -v1 bugs/minus bugs/plus >bugs/deleted
join -t"$tab" -v2 bugs/minus bugs/plus >bugs/brandnew
f_res='function resolved(status,resolution) {
return (status ~/CLOSED|RESOLVED/ &&
resolution ~/FIXED|INVALID|WONTFIX|WORKSFORME|DUPLICATE/) }'
# 4,9:status 5,10:resolution
awk -F"$tab" "$f_res"'!resolved($4,$5)&&resolved($9,$10)' bugs/updated >bugs/resolved
awk -F"$tab" "$f_res"'!resolved($4,$5)' bugs/list.new >bugs/pending
[ -s bugs/brandnew ] || exit 0
exec 4>bugs/msg
subj="I: Sisyphus-$(date +%Y%m%d) bugs:"
if [ -s bugs/brandnew ]; then
n="$(lines bugs/brandnew)"
subj="$subj +$n"
echo " $n NEW bugs"; echo
while IFS="$tab" read id package severity status resolution desc; do
echo "#$id $package $severity"
echo "$desc"
echo
done <bugs/brandnew
fi >&4
if [ -s bugs/resolved ]; then
n="$(lines bugs/resolved)"
subj="$subj -$n"
echo " $n RESOLVED bugs"; echo
while IFS="$tab" read id pkg0 sev0 status0 resolution0 desc0 \
package severity status resolution desc; do
echo "#$id $package $severity $resolution"
echo "$desc"
echo
done <bugs/resolved
fi >&4
n="$(lines bugs/pending)"
subj="$subj ($n)"
echo "Total $n pending bugs." >&4
if [ -n "$mailto" -a -z "${mailto##*@*}" ]; then
/usr/lib/sendmail -oi -t <<EOF
To: $(echo $mailto |sed -e 's/ /, /g;s/,,/,/g')
Subject: $subj
Content-Type: text/plain; charset=koi8-r
$(cat bugs/msg)
EOF
mv -f bugs/list.new bugs/list.old
else
echo "$subj"
cat bugs/msg
fi
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20050705/4a4cf748/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus