Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_tlsv12/sys/src/cmd/gs/lib/lprsetup.sh – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#!/bin/sh
2
# $Id: lprsetup.sh,v 1.3 2002/02/21 21:49:28 giles Exp $
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
 
9
DEVICES="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"
11
FILTERS="if"
12
 
13
# The port your printer is on
14
PRINTERDEV=/dev/lp1
15
# The kind of printer (accepted values: 'parallel' and 'serial')
16
PRINTERTYPE=parallel
17
 
18
GSDIR=/usr/local/lib/ghostscript
19
GSFILTERDIR=$GSDIR/filt
20
SPOOLDIR=/var/spool
21
GSIF=unix-lpr.sh
22
PCAP=printcap.insert
23
 
24
PATH=/bin:/usr/bin:/usr/ucb
25
export PATH
26
 
27
if [ ! -w $GSDIR ]; then
28
  echo "$GSDIR must be writable to create filter directory"
29
  exit 1
30
fi
31
 
32
echo "
33
Making links in the filter directory $GSFILTERDIR ...
34
"
35
 
36
#
37
# Make the directory for holding the filter and links
38
#
39
if [ -d $GSFILTERDIR ]; then
40
  echo "$GSFILTERDIR already exists - not created"
41
else
42
  mkdir $GSFILTERDIR
43
fi
44
rm -f $GSFILTERDIR/direct
45
ln -s . $GSFILTERDIR/direct
46
rm -f $GSFILTERDIR/indirect
47
ln -s . $GSFILTERDIR/indirect
48
 
49
#
50
# Create a link from each filtertype to the real filter script
51
#
52
for filter in $FILTERS
53
do
54
  rm -f $GSFILTERDIR/gs$filter
55
  ln -s  ../$GSIF $GSFILTERDIR/gs$filter
56
done
57
 
58
#
59
# Create a link from each device to the filter directory
60
#
61
for device in $DEVICES
62
do
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
75
done
76
 
77
#
78
# Create a basic printcap insert - this is made in the CURRENT directory
79
#
80
rm -f $PCAP
81
cat > $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
#
96
EOF
97
 
98
(
99
previous=undefined
100
for device in $DEVICES
101
do
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:"
157
done
158
) >> $PCAP
159
 
160
echo "
161
Example printcap insert file \"$PCAP\" now created"
162
 
163
#
164
# Remind the user what's still to do
165
#
166
 
167
echo "
168
NB/ You will need to create the following directories, with
169
appropriate permissions, and do 'touch logfile' and 'touch acct'
170
in the top level directories (ie. not the 'raw' ones):
171
"
172
(
173
for device in $DEVICES
174
do
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
185
done
186
) | sort -u
187
 
188
echo "
189
        + + + "