Magellan Linux

Contents of /alx-src/branches/alxconf-060/functions/config_printers.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 218 - (show annotations) (download) (as text)
Tue Mar 8 20:29:46 2005 UTC (19 years, 2 months ago) by niro
Original Path: alx-src/trunk/alxconfig-ng/functions/config_printers.sh
File MIME type: application/x-sh
File size: 4060 byte(s)
new

1 # configures printing on the host via mysql db settings
2
3 #delme settings
4 SQL_USER=alx_install
5 SQL_PASS=@lx
6 SQL_HOST=128.20.41.110
7 SQL_DB=alx_web
8 ALX_SERIAL=10
9
10 get_printer_settings()
11 {
12 local i all count prn_ids settings DB_PRINTER
13
14 # first get all printer names
15 prn_ids=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
16 "select id from cfg_printers where serial='${ALX_SERIAL}'")
17
18 # set counter equal to numbers of printers
19 declare -i count=0
20 for i in ${prn_ids}
21 do
22 # now get the other settings und put them in arrays
23 ALX_PRINTER_NAME[${count}]=$(mysql_command \
24 ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
25 "select printer_name
26 from cfg_printers
27 where serial='${ALX_SERIAL}' and id='${i}'")
28
29 ALX_PORT[${count}]=$(mysql_command \
30 ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
31 "select port
32 from cfg_printers
33 where serial='${ALX_SERIAL}' and id='${i}'")
34
35 ALX_IP[${count}]=$(mysql_command \
36 ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
37 "select ip
38 from cfg_printers
39 where serial='${ALX_SERIAL}' and id='${i}'")
40
41 ALX_SHARE[${count}]=$(mysql_command \
42 ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
43 "select share
44 from cfg_printers
45 where serial='${ALX_SERIAL}' and id='${i}'")
46
47 (( count++ ))
48 done
49
50 # DEBUG MSG
51 for (( i=0; i <= count; i++ ))
52 do
53 echo -n "${ALX_PRINTER_NAME[${i}]} "
54 echo -n "${ALX_PORT[${i}]} "
55 echo -n "${ALX_IP[${i}]} "
56 echo "${ALX_SHARE[${i}]}"
57 done
58
59 # export all settings
60 export ALX_COUNT=${count}
61 export ALX_PRINTER_NAME
62 export ALX_PORT
63 export ALX_IP
64 export ALX_SHARE
65 }
66
67 config_printing()
68 {
69 local port
70
71 #first of all get the vars
72 get_printer_settings
73
74 # first of all delete all printers, by wiping /etc/cups/printers.conf
75 # please note that cups must be restarted or reloaded or stopped
76 [ -n "$(pidof cupsd)" ] && /etc/init.d/cups stop &> /dev/null
77 :> /etc/cups/printers.conf
78
79 # now start cups
80 /etc/init.d/cups start &> /dev/null
81
82 # debug
83 echo "ALX_COUNT: ${ALX_COUNT}"
84 for (( i=0; i < ALX_COUNT; i++ ))
85 do
86 # get real port settings
87 case ${ALX_PORT[${i}]} in
88 lpt1)
89 port="parallel:/dev/lp0"
90 ;;
91 com1)
92 port="serial:/dev/ttyS0?baud=9600+bits=8+parity=none+flow=none"
93 ;;
94 com2)
95 port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none"
96 ;;
97 lpd)
98 port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}"
99 ;;
100 socket)
101 port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}"
102 ;;
103 esac
104
105 # now add new printers
106 /usr/sbin/lpadmin -p ${ALX_PRINTER_NAME[${i}]} -E -v ${port}
107 done
108 }
109
110 config_printing2()
111 {
112 local port
113
114 #first of all get the vars
115 get_printer_settings
116
117 # first of all delete all printers, by wiping /etc/cups/printers.conf
118 # please note that cups must be restarted or reloaded or stopped
119 [ -n "$(pidof cupsd)" ] && /etc/init.d/cups stop &> /dev/null
120 :> /etc/cups/printers.conf
121
122 # debug
123 echo "ALX_COUNT: ${ALX_COUNT}"
124 for (( i=0; i < ALX_COUNT; i++ ))
125 do
126 # get real port settings
127 case ${ALX_PORT[${i}]} in
128 lpt1)
129 port="parallel:/dev/lp0"
130 ;;
131 com1)
132 port="serial:/dev/ttyS0?baud=9600+bits=8+parity=none+flow=none"
133 ;;
134 com2)
135 port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none"
136 ;;
137 lpd)
138 port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}"
139 ;;
140 socket)
141 port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}"
142 ;;
143 esac
144
145 # now add new printers (writing printers.conf)
146 #/usr/sbin/lpadmin -p ${ALX_PRINTER_NAME[${i}]} -E -v ${port}
147 echo "<Printer ${ALX_PRINTER_NAME[${i}]}>" >> /etc/cups/printers.conf
148 echo "Info ${ALX_PRINTER_NAME[${i}]}" >> /etc/cups/printers.conf
149 echo "DeviceURI ${port}" >> /etc/cups/printers.conf
150 echo "State Idle" >> /etc/cups/printers.conf
151 echo "Accepting Yes" >> /etc/cups/printers.conf
152 echo "JobSheets none none" >> /etc/cups/printers.conf
153 echo "QuotaPeriod 0" >> /etc/cups/printers.conf
154 echo "PageLimit 0" >> /etc/cups/printers.conf
155 echo "KLimit 0" >> /etc/cups/printers.conf
156 echo "</Printer>" >> /etc/cups/printers.conf
157 done
158 }