+usage () {
+ if [ "$1" -eq 1 ]; then
+ FD=2
+ else
+ FD=1
+ fi
+ cat >&$FD <<EOF
+Usage: debman [options] [-- man(1) options] <man page name> ...
+
+Options should be exactly one of:
+ -f package.deb read pages from package.deb archive
+ -p package download .deb for package and read pages
+ from there
+EOF
+ exit "$1"
+}
+
+ARGS=`getopt -l help,filename:,package: -o hf:p: -n debman -- "$@"`
+eval set -- "$ARGS"
+
+FILENAME=
+PACKAGE=
+
+while :; do
+ case "$1" in
+ -h|--help)
+ usage 0
+ ;;
+ -f|--filename)
+ FILENAME="$2"
+ shift 2
+ ;;
+ -p|--package)
+ PACKAGE="$2"
+ shift 2
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ echo "debman: Internal error in option parsing" >&2
+ exit 1
+ ;;
+ esac
+done
+
+if ( [ -n "$FILENAME" ] && [ -n "$PACKAGE" ] ) || \
+ ( [ -z "$FILENAME" ] && [ -z "$PACKAGE" ] ); then
+ usage 1