/usr/bin/wnpp-check is in devscripts 2.17.12ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 95 96 97 98 99 100 101 102 103 | #!/bin/bash
# wnpp-check -- check for software being packaged or requested
# This script is in the PUBLIC DOMAIN.
# Authors:
# David Paleino <d.paleino@gmail.com>
#
# Adapted from wnpp-alert, by Arthur Korn <arthur@korn.ch>
set -e
CURLORWGET=""
GETCOMMAND=""
EXACT=0
PROGNAME=${0##*/}
usage () { echo \
"Usage: $PROGNAME <package name> [...]
-h,--help Show this help message
-v,--version Show a version message
Check whether a package is listed as being packaged (ITPed) or has an
outstanding request for packaging (RFP) on the WNPP website
https://www.debian.org/devel/wnpp/"
}
version () { echo \
"This is $PROGNAME, from the Debian devscripts package, version ###VERSION###
This script is in the PUBLIC DOMAIN.
Authors: David Paleino <d.paleino@gmail.com>
Adapted from wnpp-alert, by Arthur Korn <arthur@korn.ch>,
with modifications by Julian Gilbey <jdg@debian.org>"
}
TEMP=$(getopt -n "$PROGNAME" -o 'hve' \
-l 'help,version,exact' \
-- "$@") || (rc=$?; usage >&2; exit $rc)
eval set -- "$TEMP"
while true
do
case "$1" in
-h|--help) usage; exit 0 ;;
-v|--version) version; exit 0 ;;
-e|--exact) EXACT=1 ;;
--) shift; break ;;
esac
shift
done
if [ -z "$1" ]; then
usage
exit 1
fi
PACKAGES="$@"
if command -v wget >/dev/null 2>&1; then
CURLORWGET="wget"
GETCOMMAND="wget -q -O"
elif command -v curl >/dev/null 2>&1; then
CURLORWGET="curl"
GETCOMMAND="curl -qfs -o"
else
echo "$PROGNAME: need either the wget or curl package installed to run this" >&2
exit 1
fi
WNPP=`mktemp -t wnppcheck-wnpp.XXXXXX`
WNPPTMP=`mktemp -t wnppcheck-wnpp.XXXXXX`
trap "rm -f '$WNPP' '$WNPPTMP'" 0 1 2 3 7 10 13 15
WNPP_PACKAGES=`mktemp -t wnppcheck-wnpp_packages.XXXXXX`
trap "rm -f '$WNPP' '$WNPPTMP' '$WNPP_PACKAGES'" \
0 1 2 3 7 10 13 15
# Here's a really sly sed script. Rather than first grepping for
# matching lines and then processing them, this attempts to sed
# every line; those which succeed execute the 'p' command, those
# which don't skip over it to the label 'd'
$GETCOMMAND $WNPPTMP http://www.debian.org/devel/wnpp/being_packaged || \
{ echo "$PROGNAME: $CURLORWGET http://www.debian.org/devel/wnpp/being_packaged failed." >&2; exit 1; }
sed -ne 's/.*<li><a href="https\?:\/\/bugs.debian.org\/\([0-9]*\)">\([^:<]*\)[: ]*\([^<]*\)<\/a>.*/ITP \1 \2 -- \3/; T d; p; : d' $WNPPTMP > $WNPP
$GETCOMMAND $WNPPTMP http://www.debian.org/devel/wnpp/requested || \
{ echo "$PROGNAME: $CURLORWGET http://www.debian.org/devel/wnpp/requested failed." >&2; exit 1; }
sed -ne 's/.*<li><a href="https\?:\/\/bugs.debian.org\/\([0-9]*\)">\([^:<]*\)[: ]*\([^<]*\)<\/a>.*/RFP \1 \2 -- \3/; T d; p; : d' $WNPPTMP >> $WNPP
awk -F' ' '{print "("$1" - #"$2") http://bugs.debian.org/"$2" "$3}' $WNPP | sort -k 5 > $WNPP_PACKAGES
FOUND=0
for pkg in $PACKAGES
do
if [ $EXACT != 1 ]; then
grep $pkg $WNPP_PACKAGES && FOUND=1
else
grep " $pkg$" $WNPP_PACKAGES && FOUND=1
fi
done
exit $FOUND
|