Patrick Schoenfeld a écrit: > [...] your changes as a patch against our subversion repository, instead > of sending us a complete copy of the changed tool. > > Could you please provide us this?
Hi, Here you are, made against the shell script and the manpage from revision 1952. Regards, François.
diff -ur scripts.orig/manpage-alert.1 scripts/manpage-alert.1 --- scripts.orig/manpage-alert.1 2009-08-02 20:00:43.000000000 +0200 +++ scripts/manpage-alert.1 2009-08-02 20:17:15.000000000 +0200 @@ -2,9 +2,9 @@ .SH NAME manpage-alert \- check for binaries without corresponding manpages .SH SYNOPSIS -\fBmanpage-alert\fR \fI[path list]\fR +\fBmanpage-alert\fR [-p\ |\ -P\ |\ -L] [\fIpaths\fR] .br -\fBmanpage-alert \-\-help|\-\-version\fR +\fBmanpage-alert \-h\ |\ \-v\fR .SH DESCRIPTION \fBmanpage-alert\fR searches the given list of paths for binaries without corresponding manpages. @@ -12,10 +12,20 @@ If no paths are specified on the command line, the path list \fI/bin /sbin /usr/bin /usr/sbin /usr/games\fR will be assumed. .SH OPTIONS -.BR \-\-help ", " \-h +.TP +.BR \-p +Show to which package executables belong to. +.TP +.BR \-P +Show to which package executables belong to, but don't show the statistics. +.TP +.BR \-L +List the executables but don't show the statistics. +.TP +.BR \-h Show a summary of options. .TP -.BR \-\-version ", " \-v +.BR \-v Show version and copyright information. .SH AUTHOR \fBmanpage-alert\fR was written by Branden Robinson and modified by diff -ur scripts.orig/manpage-alert.sh scripts/manpage-alert.sh --- scripts.orig/manpage-alert.sh 2009-08-02 20:00:43.000000000 +0200 +++ scripts/manpage-alert.sh 2009-08-02 20:18:44.000000000 +0200 @@ -19,13 +19,19 @@ usage() { cat <<EOF -Usage: manpage-alert [options | paths] +Usage: manpage-alert [-p | -P | -L] [paths] Options: - -h, --help This usage screen. - -V, --version Display the version and copyright information - - This script will locate executables in the given paths for which no - manpage is available. + -p Show to which package executables belong to. + -P Show to which package executables belong to, + but don't show the statistics. + -L List the executables but don't show the statistics. + -h This usage screen. + -v Display the version and copyright information + + If you don't specify an option, this script will locate executables in + the given paths for which no manpage is available. -P or -L is probably + what you want if you wish to pipe the output of manpage-alert to + another program. If no paths are specified on the command line, "/bin /sbin /usr/bin /usr/sbin /usr/games" will be used by default. @@ -34,7 +40,7 @@ version() { cat <<EOF -This is manpage-alert, from the Debian devscripts package, version ###VERSION### +This is manpage-alert, from the Debian devscripts package, version ###VERSION###. This code is (C) 2005 by Branden Robinson, all rights reserved. This program comes with ABSOLUTELY NO WARRANTY. You are free to redistribute this code under the terms of the @@ -42,10 +48,38 @@ EOF } -case "$1" in - --help|-h) usage; exit 0;; - --version|-V) version; exit 0;; +SHOWPACKAGE=FALSE +DUMP=FALSE +showpackage() { + # fix diversions, see dpkg-query manpage. + PKGNAME="$( LANG=C dpkg-query -S "$1" 2> /dev/null | sed -e 's/.\+diversion by.\+$//g' )" + [ -n "$PKGNAME" ] && echo "$PKGNAME" +} + +# 0=waiting for parameters / 1=already one exclusive parameter entered +CONF=0 +while getopts 'pPLhv' opt +do +case $opt in + p) + [ $CONF -eq 0 ] && CONF=1 && SHOWPACKAGE=TRUE && DUMP=FALSE && continue + [ $CONF -eq 1 ] && echo "Too many parameters given." && usage && exit 0 + ;; + P) + [ $CONF -eq 0 ] && CONF=1 && SHOWPACKAGE=TRUE && DUMP=TRUE && continue + [ $CONF -eq 1 ] && echo "Too many parameters given." && usage && exit 0 + ;; + L) + [ $CONF -eq 0 ] && CONF=1 && SHOWPACKAGE=FALSE && DUMP=TRUE && continue + [ $CONF -eq 1 ] && echo "Too many parameters given." && usage && exit 0 + ;; + h) usage; exit 0;; + v) version; exit 0;; esac +done +if [ "$OPTERR" != 0 ]; then + shift $(( $OPTIND-1)) +fi if [ $# -lt 1 ]; then set -- /bin /sbin /usr/bin /usr/sbin /usr/games @@ -59,24 +93,35 @@ for F in "$DIR"/*; do # Skip as it's a symlink to /usr/bin if [ "$F" = "/usr/bin/X11" ]; then continue; fi - - NUM_EXECUTABLES=$(( $NUM_EXECUTABLES + 1 )) + if [ $DUMP = "FALSE" ]; then + NUM_EXECUTABLES=$(( $NUM_EXECUTABLES + 1 )) + fi OUT=$(man -w -S 1:8:6 "${F##*/}" 2>&1 >/dev/null) RET=$? if [ $RET = "0" ]; then - NUM_MANPAGES_FOUND=$(( $NUM_MANPAGES_FOUND + 1 )) + if [ $DUMP = "FALSE" ]; then + NUM_MANPAGES_FOUND=$(( $NUM_MANPAGES_FOUND + 1 )) + fi else - echo "$OUT" | sed -e "/^.*'man 7 undocumented'.*$/ d" \ - -e "s,\(.\)\b${F##*/}(\b|$),\1$F," -e 's,//,/,' - NUM_MANPAGES_MISSING=$(( $NUM_MANPAGES_MISSING + 1 )) + if [ $SHOWPACKAGE = "TRUE" ]; then + showpackage "$F" + else + echo "$OUT" | sed -e "/^.*'man 7 undocumented'.*$/ d" \ + -e "s,\(.\)\b${F##*/}(\b|$),\1$F," -e 's,//,/,' + fi + if [ $DUMP = "FALSE" ]; then + NUM_MANPAGES_MISSING=$(( $NUM_MANPAGES_MISSING + 1 )) + fi + fi done done +if [ $DUMP != "TRUE" ]; then printf "Of %d commands, found manpages for %d (%d missing).\n" \ $NUM_EXECUTABLES \ $NUM_MANPAGES_FOUND \ $NUM_MANPAGES_MISSING - +fi # vim:set ai et sw=4 ts=4 tw=80: