Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 270 - (hide annotations) (download) (as text)
Wed Apr 20 11:46:41 2005 UTC (19 years ago) by niro
Original Path: alx-src/trunk/alxconfig-ng/functions/config_printers.sh
File MIME type: application/x-sh
File size: 4600 byte(s)
added lpd services

1 niro 270 # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_printers.sh,v 1.8 2005-04-20 11:46: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     prn_ids=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
10     "select id from cfg_printers where serial='${ALX_SERIAL}'")
11    
12     # set counter equal to numbers of printers
13     declare -i count=0
14     for i in ${prn_ids}
15     do
16     # now get the other settings und put them in arrays
17     ALX_PRINTER_NAME[${count}]=$(mysql_command \
18     ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
19     "select printer_name
20     from cfg_printers
21     where serial='${ALX_SERIAL}' and id='${i}'")
22    
23     ALX_PORT[${count}]=$(mysql_command \
24     ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
25     "select port
26     from cfg_printers
27     where serial='${ALX_SERIAL}' and id='${i}'")
28    
29     ALX_IP[${count}]=$(mysql_command \
30     ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
31     "select ip
32     from cfg_printers
33     where serial='${ALX_SERIAL}' and id='${i}'")
34    
35     ALX_SHARE[${count}]=$(mysql_command \
36     ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
37     "select share
38     from cfg_printers
39     where serial='${ALX_SERIAL}' and id='${i}'")
40    
41     (( count++ ))
42     done
43    
44     # DEBUG MSG
45 niro 241 # for (( i=0; i <= count; i++ ))
46     # do
47     # echo -n "${ALX_PRINTER_NAME[${i}]} "
48     # echo -n "${ALX_PORT[${i}]} "
49     # echo -n "${ALX_IP[${i}]} "
50     # echo "${ALX_SHARE[${i}]}"
51     # done
52 niro 218
53     # export all settings
54     export ALX_COUNT=${count}
55     export ALX_PRINTER_NAME
56     export ALX_PORT
57     export ALX_IP
58     export ALX_SHARE
59     }
60    
61 niro 232 config_printing_old()
62 niro 218 {
63     local port
64    
65     #first of all get the vars
66     get_printer_settings
67    
68     # first of all delete all printers, by wiping /etc/cups/printers.conf
69     # please note that cups must be restarted or reloaded or stopped
70     [ -n "$(pidof cupsd)" ] && /etc/init.d/cups stop &> /dev/null
71     :> /etc/cups/printers.conf
72    
73     # now start cups
74     /etc/init.d/cups start &> /dev/null
75    
76     # debug
77 niro 241 # echo "ALX_COUNT: ${ALX_COUNT}"
78    
79 niro 218 for (( i=0; i < ALX_COUNT; i++ ))
80     do
81     # get real port settings
82     case ${ALX_PORT[${i}]} in
83     lpt1)
84     port="parallel:/dev/lp0"
85     ;;
86     com1)
87     port="serial:/dev/ttyS0?baud=9600+bits=8+parity=none+flow=none"
88     ;;
89     com2)
90     port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none"
91     ;;
92     lpd)
93     port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}"
94     ;;
95     socket)
96     port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}"
97     ;;
98     esac
99    
100     # now add new printers
101     /usr/sbin/lpadmin -p ${ALX_PRINTER_NAME[${i}]} -E -v ${port}
102     done
103     }
104    
105 niro 232 config_printing()
106 niro 218 {
107     local port
108    
109     #first of all get the vars
110     get_printer_settings
111    
112     # first of all delete all printers, by wiping /etc/cups/printers.conf
113     # please note that cups must be restarted or reloaded or stopped
114     [ -n "$(pidof cupsd)" ] && /etc/init.d/cups stop &> /dev/null
115     :> /etc/cups/printers.conf
116    
117     # debug
118 niro 241 # echo "ALX_COUNT: ${ALX_COUNT}"
119    
120 niro 218 for (( i=0; i < ALX_COUNT; i++ ))
121     do
122     # get real port settings
123     case ${ALX_PORT[${i}]} in
124     lpt1)
125     port="parallel:/dev/lp0"
126     ;;
127     com1)
128     port="serial:/dev/ttyS0?baud=9600+bits=8+parity=none+flow=none"
129     ;;
130     com2)
131     port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none"
132     ;;
133     lpd)
134     port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}"
135     ;;
136     socket)
137     port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}"
138     ;;
139     esac
140    
141     # now add new printers (writing printers.conf)
142     #/usr/sbin/lpadmin -p ${ALX_PRINTER_NAME[${i}]} -E -v ${port}
143     echo "<Printer ${ALX_PRINTER_NAME[${i}]}>" >> /etc/cups/printers.conf
144     echo "Info ${ALX_PRINTER_NAME[${i}]}" >> /etc/cups/printers.conf
145     echo "DeviceURI ${port}" >> /etc/cups/printers.conf
146     echo "State Idle" >> /etc/cups/printers.conf
147     echo "Accepting Yes" >> /etc/cups/printers.conf
148     echo "JobSheets none none" >> /etc/cups/printers.conf
149     echo "QuotaPeriod 0" >> /etc/cups/printers.conf
150     echo "PageLimit 0" >> /etc/cups/printers.conf
151     echo "KLimit 0" >> /etc/cups/printers.conf
152     echo "</Printer>" >> /etc/cups/printers.conf
153     done
154 niro 244
155 niro 270 # setup lpd print-services
156     echo "printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd" > /etc/inetd.conf
157    
158 niro 244 # start samba and cups if ALX_COUNT > 0
159     if [[ ${ALX_COUNT} != 0 ]]
160     then
161 niro 270 # echo "DEBUG: adding samba+cups+inetd"
162     rc-config add inetd &> /dev/null
163 niro 244 rc-config add cups &> /dev/null
164     rc-config add samba &> /dev/null
165     else
166 niro 270 # echo "DEBUG: deleting samba+cups+inetd"
167     rc-config del inetd &> /dev/null
168 niro 244 rc-config del cups &> /dev/null
169     rc-config del samba &> /dev/null
170     fi
171 niro 218 }