Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/modules/lprng/printing.client.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1261 - (hide annotations) (download)
Fri Feb 4 20:02:42 2011 UTC (13 years, 3 months ago) by niro
Original Path: mcore-src/trunk/mcore-tools/daemon/client/include/printing.client.class
File size: 2471 byte(s)
- merged addprinter and delprinter into one printer functions
- fixed the help functions according to the new printer function 

1 niro 1248 # $Id$
2    
3     provide lprng
4    
5 niro 1261 help_printing_printer()
6 niro 1248 {
7 niro 1261 mecho "get printing.printer"
8     mecho " Shows all configured printers."
9     mecho
10     mecho "set printing.addprinter [action] [name] [port] [ip] [share]"
11     mecho " Adds or deletes a printer."
12     mecho " Actions:"
13     mecho " add - adds given printer"
14     mecho " del - deletes given printer"
15     mecho
16 niro 1248 mecho " name - name of the printer"
17     mecho " port - printing port (lpt1, usb1, com1 ... lptN, usbN, comN"
18     mecho " ip - ip of the remote printer - optional"
19     mecho " share - share/port name of the remote printer - optional"
20     }
21    
22 niro 1261 helper_addprinter()
23 niro 1248 {
24     local name="$1"
25     local port="$2"
26     local ip="$3"
27     local share="$4"
28    
29 niro 1261 [[ -z ${name} ]] && help_printing_printer && return 1
30     [[ -z ${port} ]] && help_printing_printer && return 1
31 niro 1248
32     [[ ! -d /etc/printcap.d ]] && install -d /etc/printcap.d
33    
34     case ${port} in
35     lpt[0-9]*) port="/dev/lp$(( ${port/lpt/}-1 ))" ;;
36     com[0-9]*) port="/dev/ttyS$(( ${port/com/}-1 ))" ;;
37     usb[0-9]*) port="/dev/usb/lp$(( ${port/usb/}-1 ))" ;;
38     #lpd) port="lpd://${ip}/${share}" ;;
39     #socket) port="socket://${ip}:${share}" ;;
40     esac
41    
42     CONFIG="/etc/printcap.d/${name}.conf"
43     addconfig "${name}|${name}"
44     addconfig " :lp=${port}"
45     addconfig " :sd=/var/spool/lpd/${name}"
46    
47     # regenerate printcap
48     helper_generate_printcap
49     }
50    
51 niro 1261 helper_delprinter()
52 niro 1248 {
53     local name="$1"
54    
55 niro 1261 [[ -z ${name} ]] && help_printing_printer && return 1
56 niro 1248
57     if [[ -f /etc/printcap.d/${name}.conf ]]
58     then
59     rm /etc/printcap.d/${name}.conf
60     fi
61    
62     if [[ -d /var/spool/lpd/${name} ]]
63     then
64     rm -rf /var/spool/lpd/${name}
65     fi
66    
67     # regenerate printcap
68     helper_generate_printcap
69     }
70    
71 niro 1261 set_printing_printer()
72 niro 1248 {
73 niro 1261 local action="$1"
74     local name="$2"
75     local port="$3"
76     local ip="$4"
77     local share="$5"
78    
79     case "${action}" in
80     add) helper_addprinter "${name}" "${port}" "${ip}" "${share}" ;;
81     del) helper_delprinter "${name}" ;;
82     *) help_printing_printer && return 1 ;;
83     esac
84 niro 1248 }
85    
86     get_printing_printer()
87     {
88     local i
89     local printer
90    
91     for i in $(find /etc/printcap.d -type f -name \*.conf)
92     do
93     printer="${printer} $(basename ${i} .conf)"
94     done
95    
96     mecho ${printer}
97     }
98    
99     helper_generate_printcap()
100     {
101     local i
102    
103     CONFIG="/etc/printcap"
104     clearconfig
105    
106     for i in $(find /etc/printcap.d -type f -name \*.conf)
107     do
108     mecho "adding ${i}"
109     addconfig "#--- added by mcored ---"
110     cat ${i} >> ${CONFIG}
111     addconfig "#-----------------------"
112     addconfig
113    
114     # install spooler directories
115     install -o lp -g lp -m0700 -d /var/spool/lpd/$(basename ${i} .conf)
116     done
117     }