Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3278 - (show annotations) (download) (as text)
Wed Nov 2 13:53:37 2011 UTC (12 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 2185 byte(s)
-create missing spooler logfiles
1 # $Id$
2 # configures printing on the host via mysql db settings
3
4 config_printing()
5 {
6 local port
7 local CONFIG
8 local prn_ids
9
10 # first of all get the vars
11 prn_ids=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'")
12
13 # first of all delete all printers, by wiping /etc/printcap and all spooler directories
14 CONFIG="/etc/printcap"
15 clearconfig
16
17 # 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
24 # cleanup log directories
25 [[ -d /var/log/lprng ]] && rm -r /var/log/lprng
26 install -d /var/log/lprng
27
28 for i in ${prn_ids}
29 do
30 evaluate_table cfg_printers "where serial='${ALX_SERIAL}' and id='${i}'"
31
32 # do not add any printers if the name is empty - warn the user
33 if [[ -z ${cfg_printers_printer_name} ]]
34 then
35 echo -e "${COLRED}No printer_name given in config of printer '${i}' with port '${cfg_printers_port}'. Not added!${COLDEFAULT}"
36 continue
37 fi
38
39 # get real port settings
40 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 usb[0-9]*) port="/dev/usb/lp$(( ${cfg_printers_port/usb/}-1 ))" ;;
44 #lpd) port="lpd://${ip}/${share}" ;;
45 #socket) port="socket://${ip}:${share}" ;;
46 esac
47
48 # now add new printers (writing printcap)
49 addconfig "#--- added by alxconfig ---"
50 addconfig "${cfg_printers_printer_name}|${cfg_printers_printer_name}"
51 addconfig " :lp=${port}"
52 addconfig " :sd=/var/spool/lpd/${cfg_printers_printer_name}"
53 addconfig " :lf=/var/log/lprng/${cfg_printers_printer_name}"
54 addconfig "#-----------------------"
55 addconfig
56
57 # install spooler directories
58 install -o lp -g lp -m0700 -d /var/spool/lpd/${cfg_printers_printer_name}
59
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 done
65
66 # start lprng
67 if [[ -n ${prn_ids} ]]
68 then
69 rc-config add lprng &> /dev/null
70 else
71 rc-config del lprng &> /dev/null
72 fi
73 }