Contents of /alx-src/branches/alxconf-060/functions/config_printers.sh
Parent Directory | Revision Log
Revision 543 -
(show annotations)
(download)
(as text)
Wed Feb 4 19:51:39 2009 UTC (15 years, 8 months ago) by niro
Original Path: alx-src/branches/alxconf_20060908/alxconfig-ng/functions/config_printers.sh
File MIME type: application/x-sh
File size: 2917 byte(s)
Wed Feb 4 19:51:39 2009 UTC (15 years, 8 months ago) by niro
Original Path: alx-src/branches/alxconf_20060908/alxconfig-ng/functions/config_printers.sh
File MIME type: application/x-sh
File size: 2917 byte(s)
- created alxconf_20060908 branch for the stable-050 alx based on tag alxconf_20060908_1
1 | # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_printers.sh,v 1.9 2005-10-09 21:29:41 niro Exp $ |
2 | # configures printing on the host via mysql db settings |
3 | |
4 | get_printer_settings() |
5 | { |
6 | local i all count prn_ids settings DB_PRINTER |
7 | |
8 | # first get all printer names |
9 | prn_ids=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'") |
10 | |
11 | # set counter equal to numbers of printers |
12 | declare -i count=0 |
13 | for i in ${prn_ids} |
14 | do |
15 | # now get the other settings und put them in arrays |
16 | ALX_PRINTER_NAME[${count}]=$(mysqldo "select printer_name from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") |
17 | ALX_PORT[${count}]=$(mysqldo "select port from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") |
18 | ALX_IP[${count}]=$(mysqldo "select ip from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") |
19 | ALX_SHARE[${count}]=$(mysqldo "select share from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") |
20 | |
21 | (( count++ )) |
22 | done |
23 | |
24 | # export all settings |
25 | export ALX_COUNT=${count} |
26 | export ALX_PRINTER_NAME |
27 | export ALX_PORT |
28 | export ALX_IP |
29 | export ALX_SHARE |
30 | } |
31 | |
32 | config_printing() |
33 | { |
34 | local port |
35 | |
36 | # first of all get the vars |
37 | get_printer_settings |
38 | |
39 | # first of all delete all printers, by wiping /etc/cups/printers.conf |
40 | # please note that cups must be restarted or reloaded or stopped |
41 | [ -n "$(pidof cupsd)" ] && /etc/init.d/cups stop &> /dev/null |
42 | :> /etc/cups/printers.conf |
43 | |
44 | for (( i=0; i < ALX_COUNT; i++ )) |
45 | do |
46 | # get real port settings |
47 | case ${ALX_PORT[${i}]} in |
48 | lpt1) |
49 | port="parallel:/dev/lp0" |
50 | ;; |
51 | com1) |
52 | port="serial:/dev/ttyS0?baud=9600+bits=8+parity=none+flow=none" |
53 | ;;# echo "DEBUG: deleting samba+cups+inetd" |
54 | com2) |
55 | port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none" |
56 | ;; |
57 | lpd) |
58 | port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}" |
59 | ;; |
60 | socket) |
61 | port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}" |
62 | ;; |
63 | esac |
64 | |
65 | # now add new printers (writing printers.conf) |
66 | echo "<Printer ${ALX_PRINTER_NAME[${i}]}>" >> /etc/cups/printers.conf |
67 | echo "Info ${ALX_PRINTER_NAME[${i}]}" >> /etc/cups/printers.conf |
68 | echo "DeviceURI ${port}" >> /etc/cups/printers.conf |
69 | echo "State Idle" >> /etc/cups/printers.conf |
70 | echo "Accepting Yes" >> /etc/cups/printers.conf |
71 | echo "JobSheets none none" >> /etc/cups/printers.conf |
72 | echo "QuotaPeriod 0" >> /etc/cups/printers.conf |
73 | echo "PageLimit 0" >> /etc/cups/printers.conf |
74 | echo "KLimit 0" >> /etc/cups/printers.conf |
75 | echo "</Printer>" >> /etc/cups/printers.conf |
76 | done |
77 | |
78 | # setup lpd print-services |
79 | echo "printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd" > /etc/inetd.conf |
80 | |
81 | # start samba and cups if ALX_COUNT > 0 |
82 | if [[ ${ALX_COUNT} != 0 ]] |
83 | then |
84 | rc-config add inetd &> /dev/null |
85 | rc-config add cups &> /dev/null |
86 | rc-config add samba &> /dev/null |
87 | else |
88 | rc-config del inetd &> /dev/null |
89 | rc-config del cups &> /dev/null |
90 | rc-config del samba &> /dev/null |
91 | fi |
92 | } |