Annotation of /alx-src/tags/alxconf-0_6_5/functions/config_printers.sh
Parent Directory | Revision Log
Revision 4839 -
(hide annotations)
(download)
(as text)
Mon May 13 11:28:28 2013 UTC (11 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 2185 byte(s)
Mon May 13 11:28:28 2013 UTC (11 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 2185 byte(s)
tagged 'alxconf-0_6_5'
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 | } |