summaryrefslogtreecommitdiffstats
path: root/bin/dobuildlog
diff options
context:
space:
mode:
Diffstat (limited to 'bin/dobuildlog')
-rwxr-xr-xbin/dobuildlog132
1 files changed, 132 insertions, 0 deletions
diff --git a/bin/dobuildlog b/bin/dobuildlog
new file mode 100755
index 0000000..793daf2
--- /dev/null
+++ b/bin/dobuildlog
@@ -0,0 +1,132 @@
+#!/bin/bash -e
+#
+# Copyright © 2002 Rick Younie <rick@def.debian.net>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+# <http://www.gnu.org/licenses/>.
+#
+#######################################################################
+
+#
+# craft a bug report or fail/success reply to a buildd log mail
+# using vim, mutt and optionally quintuple-agent:
+# mutt
+# 'f'orward the message
+# (may require autoedit & edit_headers .muttrc settings)
+# vim
+# map <F3> :%!~buildd/bin/dobuildlog agpg<CR>
+# map <S-F3> :%!~buildd/bin/dobuildlog gpg<CR>
+# map <F4> :%!~buildd/bin/dobuildlog bug<CR>
+
+# these require setting by the user
+SIGNOPTS='--clearsign --default-key younie@debian.org'
+FROM="$EMAIL" # "Your Name <your@addr.ess>"
+ARCH=m68k # for the bug report log link
+
+print_header () {
+ echo "From: $FROM"
+ sed -n '
+ /^-----/,/^Automatic/ {
+ s/From: /To: /p
+ s/^Subject: Log/Subject: Re: Log/p
+ }'
+ echo
+}
+
+fail_options () {
+ cat << EOF
+failed
+ this one takes a comment,
+ multi-line, indenting optional
+dep-wait
+ - usage: dep-wait some-package (>= version), another-package (>> version)
+giveback
+manual
+newvers
+not-for-us
+purge
+ - purges the source tree from the chroot
+retry
+upload-rem
+
+
+EOF
+}
+
+success_fail () {
+ STATUS=$(sed -n '/^-----/,/^Automatic/ s/^Subject: Log for \([^ ]*\) build .*/\1/p')
+
+ case "$STATUS" in
+ successful )
+ print_header
+ sed -n '/\.changes:$/,$ {
+ /^Format: /,/^$/p
+ }' |$SIGNPRG 2>/dev/null
+ ;;
+ failed )
+ print_header
+ fail_options
+ sed -n '/^Automatic build of/,$p'
+ ;;
+ * )
+ echo "..this doesn't appear to be a buildd success/fail message"
+ exit 1
+ ;;
+ esac
+}
+
+bug_report () {
+ PKG=$1
+ VERS=$2
+
+ cat << EOF
+From: $FROM
+To: submit@bugs.debian.org
+Subject: $PKG_VERS: fails to build
+
+Package: $PKG
+Version: $VERS
+Severity: serious
+
+Hi,
+
+
+EOF
+
+ sed -n '/^Automatic build of/,/^Build needed/ s/^/| /p'
+ cat <<EOF
+
+
+The $ARCH build logs for $PKG can be found at
+ http://buildd.debian.org/build.php?arch=$ARCH&pkg=$PKG
+
+
+EOF
+}
+
+case "$1" in
+ gpg | agpg )
+ SIGNPRG="$1 $SIGNOPTS"
+ success_fail
+ exit 0
+ ;;
+ bug )
+ PKG_VERS=$(sed -n '/^-----/,/^Automatic/ s/^Subject: Log for \([^ ]*\) build of \([^ ]*\) .*/\2/p')
+ bug_report $(echo "$PKG_VERS" |sed 's/_/ /')
+ ;;
+ * )
+ echo "Usage: $(basename $0) gpg|agpg|bug"
+ exit 1
+ ;;
+esac