Adding upstream version 2.25.15.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
10737b110a
commit
b543f2e88d
485 changed files with 191459 additions and 0 deletions
147
scripts/manpage-alert.sh
Executable file
147
scripts/manpage-alert.sh
Executable file
|
@ -0,0 +1,147 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright 2005 Branden Robinson
|
||||
# Changes copyright 2007 by their respective authors
|
||||
#
|
||||
# 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, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Usage: manpage-alert [options] [paths]
|
||||
Options:
|
||||
-h, --help This usage screen.
|
||||
-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 with manpage
|
||||
outputs for which no manpage is available and its statistics.
|
||||
|
||||
If no paths are specified on the command line, "/bin /sbin /usr/bin
|
||||
/usr/sbin /usr/games" will be used by default.
|
||||
EOF
|
||||
}
|
||||
|
||||
version() {
|
||||
cat <<EOF
|
||||
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
|
||||
GNU General Public License, version 2 or later.
|
||||
EOF
|
||||
}
|
||||
|
||||
showpackage() {
|
||||
F1="$1"
|
||||
P1="$(LANG=C dpkg-query -S "$F1" 2> /dev/null || true )"
|
||||
Q1=""; R1=""; Q2=""; R2=""
|
||||
if [ -n "$P1" ]; then
|
||||
Q1="$(echo "$P1" | grep -v "^diversion by" || true)"
|
||||
R1="$(echo "$P1" | sed -ne 's/^diversion by \(.*\) to:.*$/\1/p'): $F1"
|
||||
fi
|
||||
# symlink may be created by postinst script for alternatives etc.,
|
||||
if [ -z "$Q1" ] && [ -L "$F1" ]; then
|
||||
F2=$(readlink -f "$F1")
|
||||
P2="$(LANG=C dpkg-query -S "$F2" 2> /dev/null || true )"
|
||||
if [ -n "$P2" ]; then
|
||||
Q2="$(echo "$P2" | grep -v "^diversion by" || true)"
|
||||
R2="$(echo "$P2" | sed -ne 's/^diversion by \(.*\) to:.*$/\1/p'): $F2"
|
||||
fi
|
||||
fi
|
||||
if [ -n "$Q1" ]; then
|
||||
echo "$Q1"
|
||||
elif [ -n "$R1" ]; then
|
||||
echo "$R1 (diversion)"
|
||||
elif [ -n "$Q2" ]; then
|
||||
echo "unknown_package: $F1 -> $Q2"
|
||||
elif [ -n "$R2" ]; then
|
||||
echo "unknown_package: $F1 -> $R2 (diversion)"
|
||||
else
|
||||
echo "unknown_package: $F1"
|
||||
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
|
||||
# check if we're running on a usrmerge system
|
||||
if [ -L /bin -a -L /sbin ]; then
|
||||
set -- /usr/bin /usr/sbin /usr/games
|
||||
else
|
||||
set -- /bin /sbin /usr/bin /usr/sbin /usr/games
|
||||
fi
|
||||
fi
|
||||
|
||||
NUM_EXECUTABLES=0
|
||||
NUM_MANPAGES_FOUND=0
|
||||
NUM_MANPAGES_MISSING=0
|
||||
|
||||
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 ))
|
||||
|
||||
if OUT=$(man -w -S 1:8:6 "${F##*/}" 2>&1 > /dev/null); then
|
||||
NUM_MANPAGES_FOUND=$(( NUM_MANPAGES_FOUND + 1 ))
|
||||
else
|
||||
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:
|
Loading…
Add table
Add a link
Reference in a new issue