chiark / gitweb /
devscripts (2.10.69+squeeze4) stable-security; urgency=high
[devscripts.git] / scripts / wnpp-check.sh
1 #! /bin/bash -e
2
3 # wnpp-check -- check for software being packaged or requested
4
5 # This script is in the PUBLIC DOMAIN.
6 # Authors:
7 # David Paleino <d.paleino@gmail.com>
8 #
9 # Adapted from wnpp-alert, by Arthur Korn <arthur@korn.ch>
10
11 PROGNAME=`basename $0`
12 PACKAGES="$@"
13
14 usage () { echo \
15 "Usage: $PROGNAME <package name> [...]
16   -h,--help          Show this help message
17   -v,--version       Show a version message
18
19   Check whether a package is listed as being packaged (ITPed) or has an
20   outstanding request for packaging (RFP) on the WNPP website
21   http://www.debian.org/devel/wnpp/"
22 }
23
24 version () { echo \
25 "This is $PROGNAME, from the Debian devscripts package, version ###VERSION###
26 This script is in the PUBLIC DOMAIN.
27 Authors: David Paleino <d.paleino@gmail.com>
28 Adapted from wnpp-alert, by Arthur Korn <arthur@korn.ch>,
29 with modifications by Julian Gilbey <jdg@debian.org>"
30 }
31
32 if [ "x$1" = "x--help" -o "x$1" = "x-h" ]; then usage; exit 0; fi
33 if [ "x$1" = "x--version" -o "x$1" = "x-v" ]; then version; exit 0; fi
34 if [ "x$1" = "x" ]; then usage; exit 1; fi
35
36 if ! command -v wget >/dev/null 2>&1; then
37     echo "$PROGNAME: need the wget package installed to run this" >&2
38     exit 1
39 fi
40
41 WNPP=`mktemp -t wnppcheck-wnpp.XXXXXX`
42 WNPPTMP=`mktemp -t wnppcheck-wnpp.XXXXXX`
43 trap "rm -f '$WNPP' '$WNPPTMP'" 0 1 2 3 7 10 13 15
44 WNPP_PACKAGES=`mktemp -t wnppcheck-wnpp_packages.XXXXXX`
45 trap "rm -f '$WNPP' '$WNPPTMP' '$WNPP_PACKAGES'" \
46   0 1 2 3 7 10 13 15
47
48 # Here's a really sly sed script.  Rather than first grepping for
49 # matching lines and then processing them, this attempts to sed
50 # every line; those which succeed execute the 'p' command, those
51 # which don't skip over it to the label 'd'
52
53 wget -q -O $WNPPTMP http://www.debian.org/devel/wnpp/being_packaged || \
54     { echo "wnpp-check: wget http://www.debian.org/devel/wnpp/being_packaged failed" >&2; exit 1; }
55 sed -ne 's/.*<li><a href="http:\/\/bugs.debian.org\/\([0-9]*\)">\([^:<]*\)[: ]*\([^<]*\)<\/a>.*/ITP \1 \2 -- \3/; T d; p; : d' $WNPPTMP > $WNPP
56
57 wget -q -O $WNPPTMP http://www.debian.org/devel/wnpp/requested || \
58     { echo "wnpp-check: wget http://www.debian.org/devel/wnpp/requested" >&2; exit 1; }
59 sed -ne 's/.*<li><a href="http:\/\/bugs.debian.org\/\([0-9]*\)">\([^:<]*\)[: ]*\([^<]*\)<\/a>.*/RFP \1 \2 -- \3/; T d; p; : d' $WNPPTMP >> $WNPP
60
61 awk -F' ' '{print $3" ("$1" - #"$2")"}' $WNPP | sort > $WNPP_PACKAGES
62
63 FOUND=0
64 for pkg in $PACKAGES
65 do
66     grep $pkg $WNPP_PACKAGES && FOUND=1
67 done
68
69 exit $FOUND