Magellan Linux

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

Parent Directory Parent Directory | Revision Log 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)
- 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 }