Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1800 - (hide annotations) (download) (as text)
Thu Apr 14 19:29:35 2011 UTC (13 years, 1 month ago) by niro
File MIME type: application/x-sh
File size: 2963 byte(s)
created 0.6.x branch
1 niro 341 # $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 niro 218 # 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 niro 341 prn_ids=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'")
10 niro 218
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 niro 341 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 niro 218
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 niro 232 config_printing()
33 niro 218 {
34     local port
35    
36 niro 341 # first of all get the vars
37 niro 218 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 niro 1568 ;;
54 niro 218 com2)
55     port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none"
56     ;;
57 niro 547 usb1)
58     port="usb:/dev/usb/lp0"
59 niro 1568 ;;
60     usb2)
61     port="usb:/dev/usb/lp1"
62 niro 547 ;;
63 niro 218 lpd)
64     port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}"
65     ;;
66     socket)
67     port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}"
68     ;;
69     esac
70    
71     # now add new printers (writing printers.conf)
72     echo "<Printer ${ALX_PRINTER_NAME[${i}]}>" >> /etc/cups/printers.conf
73     echo "Info ${ALX_PRINTER_NAME[${i}]}" >> /etc/cups/printers.conf
74     echo "DeviceURI ${port}" >> /etc/cups/printers.conf
75     echo "State Idle" >> /etc/cups/printers.conf
76     echo "Accepting Yes" >> /etc/cups/printers.conf
77     echo "JobSheets none none" >> /etc/cups/printers.conf
78     echo "QuotaPeriod 0" >> /etc/cups/printers.conf
79     echo "PageLimit 0" >> /etc/cups/printers.conf
80     echo "KLimit 0" >> /etc/cups/printers.conf
81     echo "</Printer>" >> /etc/cups/printers.conf
82     done
83 niro 244
84 niro 270 # setup lpd print-services
85     echo "printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd" > /etc/inetd.conf
86    
87 niro 244 # start samba and cups if ALX_COUNT > 0
88     if [[ ${ALX_COUNT} != 0 ]]
89     then
90 niro 270 rc-config add inetd &> /dev/null
91 niro 244 rc-config add cups &> /dev/null
92     rc-config add samba &> /dev/null
93     else
94 niro 270 rc-config del inetd &> /dev/null
95 niro 244 rc-config del cups &> /dev/null
96     rc-config del samba &> /dev/null
97     fi
98 niro 218 }