aboutsummarylogtreecommitdiffstats
path: root/gsfilter
diff options
context:
space:
mode:
Diffstat (limited to 'gsfilter')
-rwxr-xr-xgsfilter63
1 files changed, 30 insertions, 33 deletions
diff --git a/gsfilter b/gsfilter
index 4380cbacae01..65591eb7ff56 100755
--- a/gsfilter
+++ b/gsfilter
@@ -2,54 +2,51 @@
#
# gsfilter.simple -- HP deskjet or similar sample filter
#
-# Requires pdftops from the xpdf package, the ghostscript package, and
-# the enscript package.
-#
+# Requires
+# poppler (xpdf): pdftops
+# ghostscript
+# enscript
+
+set -u
+
# define temporary files
-infile=/tmp/infile.$$
-tempfile=/tmp/tempfile.$$
-outfile=/tmp/outfile.$$
+infile="/tmp/infile.$$"
+tempfile="/tmp/tempfile.$$"
+outfile="/tmp/outfile.$$"
# choose your paper size
-GSPAPER=letter
-#GSPAPER=a4
-PAPER=Letter
-#PAPER=A4
+GSPAPER='letter'
+#GSPAPER='a4'
+PAPER='Letter'
+#PAPER='A4'
# chose your printer device (run gs -h to see what is available)
-DEVICE=cdjcolor
+GSDEVICE='cdjcolor'
# send the standard input to a temporary file
-cat > $infile
+cat > "${infile}"
# figure out what type of file we are trying to print
-fileinfo=`file -b $infile`
-ascii=`echo $fileinfo | grep ASCII`
-pdf=`echo $fileinfo | grep PDF`
-ps=`echo $fileinfo | grep PostScript`
+fileinfo="$(file -b "${infile}")"
# take various actions depending on the type of file -- send
# results to a temporary postscript file
-if test "$ascii" != ''
-then
- enscript -M $PAPER -o - $infile > $tempfile
-elif test "$pdf" != ''
-then
- pdftops -paper match $infile - > $tempfile
-elif test "$ps" != ''
-then
- cat $infile > $tempfile
-else
- echo "Cannot print file of type $fileinfo" | \
- enscript -M $PAPER -o - > $tempfile
-fi
+case "${fileinfo}" in
+*ASCII*) enscript -M "${PAPER}" -o - "${infile}" > "${tempfile}" ;;
+*PDF*) pdftops -paper 'match' "${infile}" - > "${tempfile}" ;;
+*PostScript*) cat "${infile}" > "${tempfile}" ;;
+*)
+ echo "Cannot print file of type ${fileinfo}" | \
+ enscript -M "${PAPER}" -o - > "${tempfile}"
+ ;;
+esac
# run the postscript through gs to produce device output in a file
-echo quit | gs -sOutputFile=$outfile -q -sPAPERSIZE=$GSPAPER -dSAFER \
- -dNOPAUSE -sDEVICE=$DEVICE $tempfile > /dev/null 2> /dev/null
+echo 'quit' | gs -sOutputFile="${outfile}" -q -sPAPERSIZE="${GSPAPER}" -dSAFER \
+ -dNOPAUSE -sDEVICE="${GSDEVICE}" "${tempfile}" > /dev/null 2>&1
# send output file to standard out
-cat $outfile
+cat "${outfile}"
# clean up
-rm $infile $tempfile $outfile
+rm -f "${infile}" "${tempfile}" "${outfile}"