source: main/trunk/binaries/mac/intel/ghostscript/bin/lprsetup.sh@ 27964

Last change on this file since 27964 was 27964, checked in by ak19, 11 years ago

Setting the mac ghostscript and imagemagick binaries to executable in SVN

  • Property svn:executable set to *
File size: 4.6 KB
Line 
1#!/bin/sh
2# $Id: lprsetup.sh 6300 2005-12-28 19:56:24Z giles $
3#
4# BSD PRINT FILTER SETUP utility for Ghostscript - used and tested on
5# SunOS 4.1.3, but I hope it will be useful on other BSD systems
6# See documentation for usage
7#
8
9DEVICES="bjt600.32 bjc600.32 bjc600.24 bjc600.24.3 bjc600.16 bjc600.8 bjc600.8.1 bjc600.1 bjc600.dq"
10#FILTERS="if nf tf gf vf df cf rf"
11FILTERS="if"
12
13# The port your printer is on
14PRINTERDEV=/dev/lp1
15# The kind of printer (accepted values: 'parallel' and 'serial')
16PRINTERTYPE=parallel
17
18GSDIR=/usr/local/lib/ghostscript
19GSFILTERDIR=$GSDIR/filt
20SPOOLDIR=/var/spool
21GSIF=unix-lpr.sh
22PCAP=printcap.insert
23
24PATH=/bin:/usr/bin:/usr/ucb
25export PATH
26
27if [ ! -w $GSDIR ]; then
28 echo "$GSDIR must be writable to create filter directory"
29 exit 1
30fi
31
32echo "
33Making links in the filter directory $GSFILTERDIR ...
34"
35
36#
37# Make the directory for holding the filter and links
38#
39if [ -d $GSFILTERDIR ]; then
40 echo "$GSFILTERDIR already exists - not created"
41else
42 mkdir $GSFILTERDIR
43fi
44rm -f $GSFILTERDIR/direct
45ln -s . $GSFILTERDIR/direct
46rm -f $GSFILTERDIR/indirect
47ln -s . $GSFILTERDIR/indirect
48
49#
50# Create a link from each filtertype to the real filter script
51#
52for filter in $FILTERS
53do
54 rm -f $GSFILTERDIR/gs$filter
55 ln -s ../$GSIF $GSFILTERDIR/gs$filter
56done
57
58#
59# Create a link from each device to the filter directory
60#
61for device in $DEVICES
62do
63 dualqueue=
64 case "$device" in
65 *.dq) device=`basename $device .dq` ; dualqueue=t ;;
66 esac
67 rm -f $GSFILTERDIR/$device
68 if [ $dualqueue ]; then
69 rm -f $GSFILTERDIR/indirect/$device
70 ln -s . $GSFILTERDIR/indirect/$device
71 else
72 rm -f $GSFILTERDIR/direct/$device
73 ln -s . $GSFILTERDIR/direct/$device
74 fi
75done
76
77#
78# Create a basic printcap insert - this is made in the CURRENT directory
79#
80rm -f $PCAP
81cat > $PCAP << EOF
82# This is an example printcap insert for Ghostscript printers
83# You will probably want either to change the names for each printer
84# below (first line for each device) to something more sensible, or
85# to add additional name entries (eg cdjcolor for cdj500.24)
86# The example is shown set up for $PRINTERTYPE printers - you will need
87# to alter the entries for different or networked remote printer,
88# eg. a remote network printer would have a line something like:
89# :lp=:rm=artemis:rp=LPT1:
90# for a PC called artemis, replacing the serial port settings
91#
92# NB/ This is only an example - it is unlikely to be complete or exactly
93# correct for your system, but is designed to illustrate filter names
94# corresponding to the accompanying bsd-if print filter
95#
96EOF
97
98(
99previous=undefined
100for device in $DEVICES
101do
102 dualqueue=
103 case "$device" in
104 *.dq) device=`basename $device .dq` ; dualqueue=t ;;
105 esac
106 base="`echo $device | sed 's/\.[0-9][0-9]*$//'`"
107 base="`echo $base | sed 's/\.[0-9][0-9]*$//'`"
108#
109# If device listed with '.dq' suffix, we set up a separate output queue
110#
111 if [ $dualqueue ]; then
112 if [ $base != $previous ]; then
113 previous=$base
114 echo "\
115# Entry for raw device $base.raw
116$base.raw|Raw output device $base:\\
117 :lp=$PRINTERDEV:\\"
118 if test "$PRINTERTYPE" = serial
119 then
120 echo "br#19200:xc#0177777:\\"
121 echo ":ms=-parity,ixon,-opost:\\"
122 fi
123 echo ":sd=$SPOOLDIR/$base/raw:\\
124 :mx#0:sf:sh:rs:"
125 fi
126 echo "\
127# Entry for device $device (output to $base.raw)
128$device|Ghostscript device $device:\\
129 :lp=/dev/null:\\"
130 else
131 echo "\
132# Entry for device $device
133$device|Ghostscript device $device:\\
134 :lp=$PRINTERDEV:\\"
135 if test "$PRINTERTYPE" = serial
136 then
137 echo "br#19200:xc#0177777:\\"
138 echo ":ms=-parity,ixon,-opost:\\"
139 fi
140 fi
141 echo "\
142 :sd=$SPOOLDIR/$base:\\
143 :lf=$SPOOLDIR/$base/logfile:\\
144 :af=$SPOOLDIR/$base/acct:\\"
145 for filter in $FILTERS
146 do
147 if [ $dualqueue ]; then
148 echo "\
149 :$filter=$GSFILTERDIR/indirect/$device/gs$filter:\\"
150 else
151 echo "\
152 :$filter=$GSFILTERDIR/direct/$device/gs$filter:\\"
153 fi
154 done
155 echo "\
156 :mx#0:sf:sh:rs:"
157done
158) >> $PCAP
159
160echo "
161Example printcap insert file \"$PCAP\" now created"
162
163#
164# Remind the user what's still to do
165#
166
167echo "
168NB/ You will need to create the following directories, with
169appropriate permissions, and do 'touch logfile' and 'touch acct'
170in the top level directories (ie. not the 'raw' ones):
171"
172(
173for device in $DEVICES
174do
175 dualqueue=
176 case "$device" in
177 *.dq) device=`basename $device .dq` ; dualqueue=t ;;
178 esac
179 base="`echo $device | sed 's/\.[0-9][0-9]*$//'`"
180 base="`echo $base | sed 's/\.[0-9][0-9]*$//'`"
181 echo " $SPOOLDIR/$base"
182 if [ $dualqueue ]; then
183 echo " $SPOOLDIR/$base/raw"
184 fi
185done
186) | sort -u
187
188echo "
189 + + + "
Note: See TracBrowser for help on using the repository browser.