# $Id$ # configures printing on the host via mysql db settings config_printing() { local port local CONFIG local prn_ids # first of all get the vars prn_ids=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'") # first of all delete all printers, by wiping /etc/printcap and all spooler directories CONFIG="/etc/printcap" clearconfig # cleanup spooler directories [[ -d /var/spool/lpd ]] && rm -r /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 # cleanup log directories [[ -d /var/log/lprng ]] && rm -r /var/log/lprng install -d /var/log/lprng for i in ${prn_ids} do evaluate_table cfg_printers "where serial='${ALX_SERIAL}' and id='${i}'" # do not add any printers if the name is empty - warn the user if [[ -z ${cfg_printers_printer_name} ]] then echo -e "${COLRED}No printer_name given in config of printer '${i}' with port '${cfg_printers_port}'. Not added!${COLDEFAULT}" continue fi # get real port settings case ${cfg_printers_port} in lpt[0-9]*) port="/dev/lp$(( ${cfg_printers_port/lpt/}-1 ))" ;; com[0-9]*) port="/dev/ttyS$(( ${cfg_printers_port/com/}-1 ))" ;; usb[0-9]*) port="/dev/usb/lp$(( ${cfg_printers_port/usb/}-1 ))" ;; #lpd) port="lpd://${ip}/${share}" ;; #socket) port="socket://${ip}:${share}" ;; esac # now add new printers (writing printcap) addconfig "#--- added by alxconfig ---" addconfig "${cfg_printers_printer_name}|${cfg_printers_printer_name}" addconfig " :lp=${port}" addconfig " :sd=/var/spool/lpd/${cfg_printers_printer_name}" addconfig " :lf=/var/log/lprng/${cfg_printers_printer_name}" addconfig "#-----------------------" addconfig # install spooler directories install -o lp -g lp -m0700 -d /var/spool/lpd/${cfg_printers_printer_name} done # start lprng if [[ -n ${prn_ids} ]] then rc-config add lprng &> /dev/null else rc-config del lprng &> /dev/null fi }