# $Id$ # configures printing on the host via mysql db settings add_printcap() { echo "$@" >> /etc/printcap } config_printing() { local printer_list local port # first of all delete all printers - printcap and spooler dirs - :> /etc/printcap find /var/spool/lpd/* -type d | xargs rm -rf &> /dev/null printer_list=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'") for printer in ${printer_list} do evaluate_table_xml cfg_printers "where serial='${ALX_SERIAL}' and id='${printer}'" # get real port settings case ${cfg_printers_port} in lpt1) port="/dev/lp0" ;; com1) port="/dev/ttyS0" ;; com2) port="/dev/ttyS1" ;; usb1) port="/dev/usb/lp0" ;; esac # now add new printers (writing printers.conf) add_printcap "# alxconfig printer id=${printer} name=${cfg_printers_printer_name}" # printer name add_printcap "${cfg_printers_printer_name}|ALX auto-configured printer id=${printer}" # port add_printcap " :lp=${port}" # spooler dir add_printcap " :sd=/var/spool/lpd/${printer}" # error log add_printcap " :lf=/var/log/lp-errs" # page length #add_printcap " :pl=#66" # page width #add_printcap " :pw=#80" # cost per page #add_printcap " :pc=#150" # maximum file size #add_printcap " :mx=#0" # suppress page header add_printcap " :sh" # empty line as spacer for the next one add_printcap # now create the spooler dir install -o lp -g lp -d /var/spool/lpd/${printer} chmod 0700 /var/spool/lpd/${printer} done }