# $Id$ # configures printing on the host via mysql db settings get_printer_settings() { local i all count prn_ids settings DB_PRINTER # first get all printer names prn_ids=$(mysqldo "select id from cfg_printers where serial='${ALX_SERIAL}'") # set counter equal to numbers of printers declare -i count=0 for i in ${prn_ids} do # now get the other settings und put them in arrays ALX_PRINTER_NAME[${count}]=$(mysqldo "select printer_name from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") ALX_PORT[${count}]=$(mysqldo "select port from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") ALX_IP[${count}]=$(mysqldo "select ip from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") ALX_SHARE[${count}]=$(mysqldo "select share from cfg_printers where serial='${ALX_SERIAL}' and id='${i}'") (( count++ )) done # export all settings export ALX_COUNT=${count} export ALX_PRINTER_NAME export ALX_PORT export ALX_IP export ALX_SHARE } config_printing() { local port local CONFIG # first of all get the vars get_printer_settings # first of all delete all printers, by wiping /etc/printcap and all spooler directories CONFIG=/etc/printcap clearconfig 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 lpt[0-9]*) port="/dev/lp$(( ${ALX_PORT[${i}]/lpt/}-1 ))" ;; com[0-9]*) port="/dev/ttyS$(( ${ALX_PORT[${i}]/com/}-1 ))" ;; usb[0-9]*) port="/dev/usb/lp$(( ${ALX_PORT[${i}]/usb/}-1 ))" ;; #lpd) port="lpd://${ip}/${share}" ;; #socket) port="socket://${ip}:${share}" ;; esac # now add new printers (writing printcap) addconfig "#--- added by alxconfig ---" addconfig "${ALX_PRINTER_NAME[${i}]}|${ALX_PRINTER_NAME[${i}]}" addconfig " :lp=${port}" addconfig " :sd=/var/spool/lpd/${ALX_PRINTER_NAME[${i}]}" addconfig "#-----------------------" addconfig # install spooler directories install -o lp -g lp -m0700 -d /var/spool/lpd/${ALX_PRINTER_NAME[${i}]} done # start lprng if ALX_COUNT > 0 if [[ ${ALX_COUNT} != 0 ]] then rc-config add lprng &> /dev/null else rc-config del lprng &> /dev/null fi }