--- alx-src/branches/alxconf-060/functions/config_printers.sh 2011/04/14 19:29:35 1800 +++ alx-src/branches/alxconf-060/functions/config_printers.sh 2011/05/07 11:02:15 1972 @@ -1,4 +1,4 @@ -# $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_printers.sh,v 1.9 2005-10-09 21:29:41 niro Exp $ +# $Id$ # configures printing on the host via mysql db settings get_printer_settings() @@ -36,63 +36,45 @@ # first of all get the vars get_printer_settings - # first of all delete all printers, by wiping /etc/cups/printers.conf - # please note that cups must be restarted or reloaded or stopped - [ -n "$(pidof cupsd)" ] && /etc/init.d/cups stop &> /dev/null - :> /etc/cups/printers.conf + # first of all delete all printers, by wiping /etc/printcap and all spooler directories + :> /etc/printcap + if [[ -d /var/spool/lpd ]] + then + rm -rf /var/spool/lpd + install -d /var/spool/lpd + install -d /var/spool/lpd/lp + chown lp:lp /var/spool/lpd/lp + chmod 0700 /var/spool/lpd/lp + fi for (( i=0; i < ALX_COUNT; i++ )) do # get real port settings case ${ALX_PORT[${i}]} in - lpt1) - port="parallel:/dev/lp0" - ;; - com1) - port="serial:/dev/ttyS0?baud=9600+bits=8+parity=none+flow=none" - ;; - com2) - port="serial:/dev/ttyS1?baud=9600+bits=8+parity=none+flow=none" - ;; - usb1) - port="usb:/dev/usb/lp0" - ;; - usb2) - port="usb:/dev/usb/lp1" - ;; - lpd) - port="lpd://${ALX_IP[${i}]}/${ALX_SHARE[${i}]}" - ;; - socket) - port="socket://${ALX_IP[${i}]}:${ALX_SHARE[${i}]}" - ;; + lpt[0-9]*) port="/dev/lp$(( ${port/lpt/}-1 ))" ;; + com[0-9]*) port="/dev/ttyS$(( ${port/com/}-1 ))" ;; + usb[0-9]*) port="/dev/usb/lp$(( ${port/usb/}-1 ))" ;; + #lpd) port="lpd://${ip}/${share}" ;; + #socket) port="socket://${ip}:${share}" ;; esac - # now add new printers (writing printers.conf) - echo "" >> /etc/cups/printers.conf - echo "Info ${ALX_PRINTER_NAME[${i}]}" >> /etc/cups/printers.conf - echo "DeviceURI ${port}" >> /etc/cups/printers.conf - echo "State Idle" >> /etc/cups/printers.conf - echo "Accepting Yes" >> /etc/cups/printers.conf - echo "JobSheets none none" >> /etc/cups/printers.conf - echo "QuotaPeriod 0" >> /etc/cups/printers.conf - echo "PageLimit 0" >> /etc/cups/printers.conf - echo "KLimit 0" >> /etc/cups/printers.conf - echo "" >> /etc/cups/printers.conf - done + # now add new printers (writing printcap) + echo "#--- added by alxconfig ---" >> /etc/printcap + echo "${ALX_PRINTER_NAME[${i}]}|${ALX_PRINTER_NAME[${i}]}" >> /etc/printcap + echo " :lp=${port}" >> /etc/printcap + echo " :sd=/var/spool/lpd/${ALX_PRINTER_NAME[${i}]}" >> /etc/printcap + echo "#-----------------------" + echo >> /etc/printcap - # setup lpd print-services - echo "printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd" > /etc/inetd.conf + # install spooler directories + install -o lp -g lp -m0700 -d /var/spool/lpd/${ALX_PRINTER_NAME[${i}]} + done - # start samba and cups if ALX_COUNT > 0 + # start lprng if ALX_COUNT > 0 if [[ ${ALX_COUNT} != 0 ]] then - rc-config add inetd &> /dev/null - rc-config add cups &> /dev/null - rc-config add samba &> /dev/null + rc-config add lprng &> /dev/null else - rc-config del inetd &> /dev/null - rc-config del cups &> /dev/null - rc-config del samba &> /dev/null + rc-config del lprng &> /dev/null fi }