summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support/latexmk/extra-scripts/startacroread
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/support/latexmk/extra-scripts/startacroread')
-rw-r--r--Master/texmf-dist/doc/support/latexmk/extra-scripts/startacroread231
1 files changed, 231 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/latexmk/extra-scripts/startacroread b/Master/texmf-dist/doc/support/latexmk/extra-scripts/startacroread
new file mode 100644
index 00000000000..a1e98fce6b6
--- /dev/null
+++ b/Master/texmf-dist/doc/support/latexmk/extra-scripts/startacroread
@@ -0,0 +1,231 @@
+#!/bin/bash
+
+# -------------------------------------------------------------------
+#
+# Shell program to start an instance of "acroread" on localhost via
+# "pdfopen" and call "pdfopen" again every time when catching the SIGUSR1
+# signal. This provides the same behaviour as "xdvi" for reloading changed
+# files. Acrobat Reader doesn't come with a "watch file" option, hence
+# this workaround, sigh...
+#
+# Copyright 2005, Thorsten Bonow
+# ( thorsten.bonow at post.rwth-aachen.de ).
+#
+# 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.
+#
+# Description:
+#
+#
+#
+# Usage:
+#
+# startacrobat [ -h | --help ] [PDF document]
+#
+# Options:
+#
+# -h, --help Display this help message and exit.
+#
+# Known Bugs:
+#
+# No other instance of Acrobat Reader should be running: this script kills
+# all of them on exit!
+#
+# Revision History:
+#
+# 01/05/2005 Initial version, adapted from "startxpdf"
+# 28/08/2005 Adapted to "pdfopen" and "acrobat"
+# 01/14/2006 Use HUP or USR1 signal for update to be fully
+# compatible with latexmk 3.07 and 3.08
+# (modification by John Collins (collins at phys.psu.edu))
+#
+#
+# -------------------------------------------------------------------
+
+
+# -------------------------------------------------------------------
+# Constants
+# -------------------------------------------------------------------
+
+ PROGNAME=$(basename $0)
+ VERSION="0.95A"
+ ACRO_RELOAD_EXEC="pdfopen --file"
+ ACROBAT_EXEC="acroread"
+
+# -------------------------------------------------------------------
+# Functions
+# -------------------------------------------------------------------
+
+
+function clean_up
+{
+
+# -----------------------------------------------------------------------
+# Function to kill remote instance of acrobat
+# No arguments
+# -----------------------------------------------------------------------
+
+ return
+}
+
+
+function error_exit
+{
+
+# -----------------------------------------------------------------------
+# Function for exit due to fatal program error
+# Accepts 1 argument:
+# string containing descriptive error message
+# -----------------------------------------------------------------------
+
+
+ echo "${PROGNAME}: ${1:-"Unknown Error"}" >&2
+ clean_up
+ exit 1
+}
+
+
+function graceful_exit
+{
+
+# -----------------------------------------------------------------------
+# Function called for a graceful exit
+# No arguments
+# -----------------------------------------------------------------------
+
+ clean_up
+ exit
+}
+
+
+function usage
+{
+
+# -----------------------------------------------------------------------
+# Function to display usage message (does not exit)
+# No arguments
+# -----------------------------------------------------------------------
+
+ echo "Usage: ${PROGNAME} [-h | --help] [PDF document]"
+}
+
+
+function helptext
+{
+
+# -----------------------------------------------------------------------
+# Function to display help message for program
+# No arguments
+# -----------------------------------------------------------------------
+
+ local tab=$(echo -en "\t\t")
+
+ cat <<- -EOF-
+
+ ${PROGNAME} ver. ${VERSION}
+ Shell program to start an instance of "acroread" on localhost via
+ "acro-reload" and call "acro-reload" again every time when catching the
+ SIGUSR1 signal. This provides the same behaviour as "xdvi" for reloading
+ changed files. Acrobat Reader doesn't come with a "watch file" option,
+ hence this workaround, sigh...
+
+ $(usage)
+
+ Options:
+
+ -h, --help Display this help message and exit.
+
+
+
+
+-EOF-
+}
+
+
+function signal_handle
+{
+
+# -----------------------------------------------------------------------
+# Function to handle signals
+# Accepts 1 argument:
+# signal_spec
+# -----------------------------------------------------------------------
+
+ case $1 in
+ INT) echo "$PROGNAME: Program aborted by user" >&2
+ clean_up
+ exit
+ ;;
+ TERM) echo "$PROGNAME: Program terminated" >&2
+ clean_up
+ exit
+ ;;
+ USR1) echo "$PROGNAME: Reloading..." >&2
+ $ACRO_RELOAD_EXEC $PDF_FILE
+ ;;
+ *) error_exit "$PROGNAME: Terminating on unknown signal"
+ ;;
+ esac
+}
+
+
+# -------------------------------------------------------------------
+# Program starts here
+# -------------------------------------------------------------------
+
+
+##### Command Line Processing #####
+
+if [ "$1" = "--help" ]; then
+ helptext
+ graceful_exit
+fi
+
+while getopts ":h" opt; do
+ case $opt in
+
+ h ) helptext
+ graceful_exit ;;
+ * ) usage
+ clean_up
+ exit 1
+ esac
+done
+
+PDF_FILE="$1"
+
+##### Initialization And Setup #####
+
+# Trap TERM and INT signals and properly exit
+
+trap "signal_handle TERM" TERM
+trap "signal_handle INT" INT
+
+# Trap HUP and USR1 signals for reloading the PDF document
+# Convert to USR1
+# (Note HUP is used by gv, and USR1 by xdvi, so both signals have precedent)
+
+trap "signal_handle USR1" HUP USR1
+
+
+##### Main Logic #####
+
+$ACRO_RELOAD_EXEC $PDF_FILE
+
+while [ 1 ];
+ do
+ # sleeps again after being interrupted by SIGUSR1, breaks if Acrobat Reader is
+ # killed
+ sleep 1
+ eval pgrep "-f" "$ACROBAT_EXEC" ">/dev/null" || break
+done
+
+graceful_exit
+