]> arthur.barton.de Git - pdfman.git/blobdiff - pdfman
Suppress errors of the "man --version" command
[pdfman.git] / pdfman
diff --git a/pdfman b/pdfman
index e68d4405e8ef4085e4bee7dc74d7e6561ccba97a..8ded8eda1150af8f45550d013fbf3a5d8dff101c 100755 (executable)
--- a/pdfman
+++ b/pdfman
@@ -22,23 +22,33 @@ while [[ $# -gt 0 ]]; do
                        # Enable verbose mode.
                        VERBOSE="-p"
                        ;;
+               "-F")
+                       # Force creating a PDF!
+                       FORCE="-F"
+                       ;;
                "-T")
                        # Force using man(1)!
                        shift
                        man "$@"
                        exit $?
                        ;;
-               "--help")
-                       echo "Usage: pdfman [-v] [-T] [<section>] <topic> ..." >&2
-                       echo "       pdfman <man(1) options> <arguments> ..." >&2
-                       echo "       pdfman {--help|--version>}" >&2
+               "--help"|"-h")
+                       echo "Usage:" >&2
+                       echo " $0 [-v] [-F] [<section>] <topic> ..." >&2
+                       echo " $0 -T [<section>] <topic> ..." >&2
+                       echo " $0 <man(1) options> <arguments> ..." >&2
+                       echo " $0 {-h|--help|--version>}" >&2
+                       echo >&2
+                       echo "  -F   Force PDF mode, even when not running on an interactive terminal"
+                       echo "  -T   Always use the man(1) command."
+                       echo "  -v   Enable verbose status messages." >&2
                        echo >&2
-                       man --help
+                       man -h >&2
                        exit 2
                        ;;
                "--version")
                        echo "pdfman, version 1" >&2
-                       man --version
+                       man --version 2>/dev/null
                        exit 2
                        ;;
                -*)
@@ -69,13 +79,19 @@ if [[ -z "$1" ]]; then
        exit $?
 fi
 
-# Make sure there is a terminal available ...
-if [[ ! -t 1 ]]; then
+# Fall back to the man(1) command when "force mode" is not active and no
+# terminal is connected to stdout:
+if [[ -z "$FORCE" ]] && [[ ! -t 1 ]]; then
        man "$@"
        exit $?
 fi
-# Make sure required tools are available ...
-if ! command -v open >/dev/null; then
+
+# Detect "opener" to use ...
+if command -v xdg-open >/dev/null; then
+       open_command=xdg-open
+elif command -v open >/dev/null; then
+       open_command=open
+else
        man "$@"
        exit $?
 fi
@@ -89,7 +105,8 @@ else
        man "$@"
        exit $?
 fi
-[[ -n "$VERBOSE" ]] && echo "Using ${ps_to_pdf_function#*_}(1) ..."
+
+[[ -n "$VERBOSE" ]] && echo "Using ${ps_to_pdf_function#*_}(1) and ${open_command}(1) ..."
 
 # Try to move old cache directory ...
 if [[ -d "$HOME/.pdfman" && ! -d "$CACHE" ]]; then
@@ -129,5 +146,5 @@ man -w "$@" | while read -r MANFILE; do
        fi
 
        [[ -n "$VERBOSE" ]] && echo "Opening \"$PDF\" ..."
-       open "$PDF"
+       $open_command "$PDF"
 done