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 1248 - (hide annotations) (download)
Wed Feb 2 20:20:24 2011 UTC (13 years, 3 months ago) by niro
Original Path: mcore-src/trunk/mcore-tools/daemon/client/include/printing.client.class
File size: 2221 byte(s)
-initial version
1 niro 1248 # $Id$
2    
3     provide lprng
4    
5     help_printing_addprinter()
6     {
7     mecho "set printing.addprinter [name] [port] [ip] [share]"
8     mecho " adds a new printer"
9     mecho " name - name of the printer"
10     mecho " port - printing port (lpt1, usb1, com1 ... lptN, usbN, comN"
11     mecho " ip - ip of the remote printer - optional"
12     mecho " share - share/port name of the remote printer - optional"
13     }
14    
15     set_printing_addprinter()
16     {
17     local name="$1"
18     local port="$2"
19     local ip="$3"
20     local share="$4"
21    
22     [[ -z ${name} ]] && help_printing_addprinter && return 1
23     [[ -z ${port} ]] && help_printing_addprinter && return 1
24    
25     [[ ! -d /etc/printcap.d ]] && install -d /etc/printcap.d
26    
27     case ${port} in
28     lpt[0-9]*) port="/dev/lp$(( ${port/lpt/}-1 ))" ;;
29     com[0-9]*) port="/dev/ttyS$(( ${port/com/}-1 ))" ;;
30     usb[0-9]*) port="/dev/usb/lp$(( ${port/usb/}-1 ))" ;;
31     #lpd) port="lpd://${ip}/${share}" ;;
32     #socket) port="socket://${ip}:${share}" ;;
33     esac
34    
35     CONFIG="/etc/printcap.d/${name}.conf"
36     addconfig "${name}|${name}"
37     addconfig " :lp=${port}"
38     addconfig " :sd=/var/spool/lpd/${name}"
39    
40     # regenerate printcap
41     helper_generate_printcap
42     }
43    
44     help_printing_delprinter()
45     {
46     mecho "set printing.delprinter [name]"
47     mecho " deletes given printer"
48     }
49    
50     set_printing_delprinter()
51     {
52     local name="$1"
53    
54     [[ -z ${name} ]] && help_printing_addprinter && return 1
55    
56     if [[ -f /etc/printcap.d/${name}.conf ]]
57     then
58     rm /etc/printcap.d/${name}.conf
59     fi
60    
61     if [[ -d /var/spool/lpd/${name} ]]
62     then
63     rm -rf /var/spool/lpd/${name}
64     fi
65    
66     # regenerate printcap
67     helper_generate_printcap
68     }
69    
70     help_printing_printer()
71     {
72     mecho "get printing.printer"
73     mecho " shows all config/var/spool/lpd/ured printer"
74     }
75    
76     get_printing_printer()
77     {
78     local i
79     local printer
80    
81     for i in $(find /etc/printcap.d -type f -name \*.conf)
82     do
83     printer="${printer} $(basename ${i} .conf)"
84     done
85    
86     mecho ${printer}
87     }
88    
89     helper_generate_printcap()
90     {
91     local i
92    
93     CONFIG="/etc/printcap"
94     clearconfig
95    
96     for i in $(find /etc/printcap.d -type f -name \*.conf)
97     do
98     mecho "adding ${i}"
99     addconfig "#--- added by mcored ---"
100     cat ${i} >> ${CONFIG}
101     addconfig "#-----------------------"
102     addconfig
103    
104     # install spooler directories
105     install -o lp -g lp -m0700 -d /var/spool/lpd/$(basename ${i} .conf)
106     done
107     }