Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3474 - (hide annotations) (download) (as text)
Fri Apr 13 18:10:01 2012 UTC (12 years, 1 month ago) by niro
File MIME type: application/x-sh
File size: 2185 byte(s)
use rc_echo()
1 niro 1972 # $Id$
2 niro 218 # configures printing on the host via mysql db settings
3    
4 niro 232 config_printing()
5 niro 218 {
6     local port
7 niro 2034 local CONFIG
8 niro 2147 local prn_ids
9 niro 218
10 niro 341 # first of all get the vars
11 niro 2147 prn_ids=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'")
12 niro 218
13 niro 1972 # first of all delete all printers, by wiping /etc/printcap and all spooler directories
14 niro 2160 CONFIG="/etc/printcap"
15 niro 2034 clearconfig
16    
17 niro 2718 # cleanup spooler directories
18     [[ -d /var/spool/lpd ]] && rm -r /var/spool/lpd
19     install -d /var/spool/lpd
20     install -d /var/spool/lpd/lp
21     chown lp:lp /var/spool/lpd/lp
22     chmod 0700 /var/spool/lpd/lp
23 niro 218
24 niro 2718 # cleanup log directories
25     [[ -d /var/log/lprng ]] && rm -r /var/log/lprng
26     install -d /var/log/lprng
27    
28 niro 2147 for i in ${prn_ids}
29 niro 218 do
30 niro 2147 evaluate_table cfg_printers "where serial='${ALX_SERIAL}' and id='${i}'"
31 niro 2610
32     # do not add any printers if the name is empty - warn the user
33     if [[ -z ${cfg_printers_printer_name} ]]
34     then
35 niro 3474 rc_echo "${COLRED}No printer_name given in config of printer '${i}' with port '${cfg_printers_port}'. Not added!${COLDEFAULT}"
36 niro 2610 continue
37     fi
38    
39 niro 218 # get real port settings
40 niro 2147 case ${cfg_printers_port} in
41     lpt[0-9]*) port="/dev/lp$(( ${cfg_printers_port/lpt/}-1 ))" ;;
42     com[0-9]*) port="/dev/ttyS$(( ${cfg_printers_port/com/}-1 ))" ;;
43 niro 2160 usb[0-9]*) port="/dev/usb/lp$(( ${cfg_printers_port/usb/}-1 ))" ;;
44 niro 1972 #lpd) port="lpd://${ip}/${share}" ;;
45     #socket) port="socket://${ip}:${share}" ;;
46 niro 218 esac
47    
48 niro 1972 # now add new printers (writing printcap)
49 niro 2034 addconfig "#--- added by alxconfig ---"
50 niro 2164 addconfig "${cfg_printers_printer_name}|${cfg_printers_printer_name}"
51 niro 2034 addconfig " :lp=${port}"
52 niro 2164 addconfig " :sd=/var/spool/lpd/${cfg_printers_printer_name}"
53 niro 2718 addconfig " :lf=/var/log/lprng/${cfg_printers_printer_name}"
54 niro 2034 addconfig "#-----------------------"
55     addconfig
56 niro 1972
57     # install spooler directories
58 niro 2164 install -o lp -g lp -m0700 -d /var/spool/lpd/${cfg_printers_printer_name}
59 niro 3278
60     # create empty log files
61     touch /var/log/lprng/${cfg_printers_printer_name}
62     chown lp:lp /var/log/lprng/${cfg_printers_printer_name}
63     chmod 0600 /var/log/lprng/${cfg_printers_printer_name}
64 niro 218 done
65 niro 244
66 niro 2147 # start lprng
67     if [[ -n ${prn_ids} ]]
68 niro 244 then
69 niro 1972 rc-config add lprng &> /dev/null
70 niro 244 else
71 niro 1972 rc-config del lprng &> /dev/null
72 niro 244 fi
73 niro 218 }