This is an automated email from the git hooks/post-receive script. osamu pushed a commit to branch master in repository devscripts.
commit d807d4aa9a7aa8091869552fdf6a18ff14f1c9fc Author: Osamu Aoki <[email protected]> Date: Wed Mar 9 15:01:40 2016 +0000 manpage-alert: show package names etc. This update is inspired by a patch submitted by François Wendling <[email protected]> for #497320. This patch adds the following new features : * Show to which package executables belongs to, using dpkg-query. * It's now possible to remove the statistics line, and leading text allowing the output to be directly piped to another program. * Allow multi-character options * diversion and missing handled properly --- debian/changelog | 2 ++ scripts/manpage-alert.1 | 21 ++++++++++----- scripts/manpage-alert.sh | 69 +++++++++++++++++++++++++++++++++++++----------- 3 files changed, 69 insertions(+), 23 deletions(-) diff --git a/debian/changelog b/debian/changelog index 82310a2..f9334e2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,8 @@ devscripts (2.16.2) UNRELEASED; urgency=medium + Fix non-{Debian,Ubuntu} cases. Closes: #816645 * debsnap: + Add --list option. Closes: #610048, #679763, #816910 + * manpage-alert: + + Show package name etc. Closes: #497320 [ Dominique Dumont ] * licensecheck: diff --git a/scripts/manpage-alert.1 b/scripts/manpage-alert.1 index 97cac66..5ba1445 100644 --- a/scripts/manpage-alert.1 +++ b/scripts/manpage-alert.1 @@ -2,21 +2,29 @@ .SH NAME manpage-alert \- check for binaries without corresponding manpages .SH SYNOPSIS -\fBmanpage-alert\fR [\fIpath list\fR] -.br -\fBmanpage-alert \-\-help\fR|\fB\-\-version\fR +\fBmanpage-alert\fR [\fIoptions\fR] [\fIpaths\fR] .SH DESCRIPTION \fBmanpage-alert\fR searches the given list of paths for binaries without corresponding manpages. .P -If no paths are specified on the command line, the path list +If no \fIpaths\fR 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 \-h\fR, \fB\-\-help Show a summary of options. .TP -.BR \-\-version ", " \-v +.BR \-v\fR, \fB\-\-version Show version and copyright information. +.TP +.BR \-f\fR, \fB\-\-file +Show filenames of missing manpages without any leading text. +.TP +.BR \-p\fR, \fB\-\-package +Show filenames of missing manpages with their package name. +.TP +.BR \-n\fR, \fB\-\-no\-stat +Do not show statistics at the end. .SH AUTHOR \fBmanpage-alert\fR was written by Branden Robinson and modified by Julian Gilbey <[email protected]> and Adam D. Barratt @@ -25,4 +33,3 @@ devscripts package. .P This manpage and the associated program are licensed under the terms of the GPL, version 2 or later. - diff --git a/scripts/manpage-alert.sh b/scripts/manpage-alert.sh index 0e2acac..dd0ee3a 100755 --- a/scripts/manpage-alert.sh +++ b/scripts/manpage-alert.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh -e # # Copyright 2005 Branden Robinson # Changes copyright 2007 by their respective authors @@ -19,13 +19,18 @@ usage() { cat <<EOF -Usage: manpage-alert [options | paths] +Usage: manpage-alert [options] [paths] Options: -h, --help This usage screen. - -V, --version Display the version and copyright information + -v, --version Display the version and copyright information. + -f, --file Show filenames of missing manpages + without any leading text. + -p, --package Show filenames of missing manpages + with their package name. + -n, --no-stat Do not show statistics at the end. - This script will locate executables in the given paths for which no - manpage is available. + This script will locate executables in the given paths with manpage + outputs for which no manpage is available and its statictics. If no paths are specified on the command line, "/bin /sbin /usr/bin /usr/sbin /usr/games" will be used by default. @@ -34,7 +39,7 @@ EOF 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 +47,33 @@ GNU General Public License, version 2 or later. EOF } -case "$1" in - --help|-h) usage; exit 0;; - --version|-V) version; exit 0;; -esac +showpackage() { + PKGNAME="$(LANG=C dpkg-query -S "$1" 2> /dev/null || true )" + if [ -n "$PKGNAME" ]; then + echo "$PKGNAME" | sed -e 's/diversion by \(.+\) to:/\1/' + fi +} + +SHOWPACKAGE=DEFAULT +SHOWSTAT=TRUE + +while [ -n "$1" ]; do + case "$1" in + -h|--help) usage; exit 0;; + -v|--version) version; exit 0;; + -p|--package) SHOWPACKAGE=PACKAGE + shift + ;; + -f|--file) SHOWPACKAGE=FILE + shift + ;; + -n|--no-stat) SHOWSTAT=FALSE + shift + ;; + *) break + ;; + esac +done if [ $# -lt 1 ]; then set -- /bin /sbin /usr/bin /usr/sbin /usr/games @@ -59,24 +87,33 @@ for DIR in "$@"; do 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 )) - OUT=$(man -w -S 1:8:6 "${F##*/}" 2>&1 >/dev/null) - RET=$? - if [ $RET = "0" ]; then + if OUT=$(man -w -S 1:8:6 "${F##*/}" 2>&1 >/dev/null); then NUM_MANPAGES_FOUND=$(( $NUM_MANPAGES_FOUND + 1 )) else - echo "$OUT" | perl -ne "next if /^.*'man 7 undocumented'.*$/;" \ - -e "s,(\W)\Q${F##*/}\E(?:\b|$),\1$F,; s,//,/,; print;" + if [ $SHOWPACKAGE = "PACKAGE" ]; then + # echo "<packagename>: <filename>" + showpackage "$F" + elif [ $SHOWPACKAGE = "FILE" ]; then + # echo "<filename>" + echo "$F" + else + # echo "No manual entry for <filename>" + echo "$OUT" | perl -ne "next if /^.*'man 7 undocumented'.*$/;" \ + -e "s,(\W)\Q${F##*/}\E(?:\b|$),\1$F,; s,//,/,; print;" + fi NUM_MANPAGES_MISSING=$(( $NUM_MANPAGES_MISSING + 1 )) fi done done +if [ $SHOWSTAT = "TRUE" ]; then +echo 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: -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git _______________________________________________ devscripts-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel
