#!/bin/sh PNUM=$1 . /etc/ltsp_functions DEVICE=`get_cfg PRINTER_${PNUM}_DEVICE` # # Either we run the print server, or we sleep for a while. # we need sleep, because init is going to continue respawning # if we don't do something. # if [ -z "${DEVICE}" ]; then exec sleep 300 else TYPE=`get_cfg PRINTER_${PNUM}_TYPE "P"` PORT=` get_cfg PRINTER_${PNUM}_PORT "910${PNUM}"` # # Check the Write-Only option # DEVWO=` get_cfg PRINTER_${PNUM}_WRITE_ONLY N` if [ "${DEVWO}" = "Y" ]; then WO_OPT="-w" else WO_OPT="" fi if [ "${TYPE}" = "S" ]; then SPEED=` get_cfg PRINTER_${PNUM}_SPEED "9600"` FLOWCTRL=` get_cfg PRINTER_${PNUM}_FLOWCTRL "S"` PARITY=` get_cfg PRINTER_${PNUM}_PARITY "N"` DATABITS=` get_cfg PRINTER_${PNUM}_DATABITS "8"` if [ "${FLOWCTRL}" = "S" ]; then PRT_FLOW_OPT="ixon ixoff -crtscts" else PRT_FLOW_OPT="-ixon -ixoff crtscts" fi case "${PARITY}" in E) PRT_PARITY_OPT="parenb -parodd" ;; O) PRT_PARITY_OPT="parenb parodd" ;; *) PRT_PARITY_OPT="-parity" ;; esac case "${DATABITS}" in 7) PRT_DATABITS_OPT="cs7" ;; *) PRT_DATABITS_OPT="cs8" ;; esac SERIAL_OPTS="${SPEED} ${PRT_FLOW_OPT} ${PRT_PARITY_OPT} ${PRT_DATABITS_OPT}" fi # # Get printer options # PRT_OPTIONS=`get_cfg PRINTER_${PNUM}_OPTIONS` if [ -n "${SPEED}" \ -o -n "${PRT_FLOW_OPT}" \ -o -n "${PRT_PARITY_OPT}" \ -o -n "${PRT_DATABITS_OPT}" \ -o -n "${PRT_OPTIONS}" ]; then PRT_OPTS="${SPEED} ${PRT_FLOW_OPT} ${PRT_PARITY_OPT} ${PRT_DATABITS_OPT} ${PRT_OPTIONS}" else PRT_OPTS="" fi # # we 'exec' the print server, so that the print server will # replace the shell. # if [ -n "${PRT_OPTS}" ]; then logger -t lp_server "Started with: -n ${PORT} ${WO_OPT} -d ${DEVICE} -t \"${PRT_OPTS}\"" exec /sbin/lp_server -n ${PORT} ${WO_OPT} -d ${DEVICE} -t "${PRT_OPTS}" >/dev/null 2>&1 else logger -t lp_server "Started with: -n ${PORT} ${WO_OPT} -d ${DEVICE}" exec /sbin/lp_server -n ${PORT} ${WO_OPT} -d ${DEVICE} >/dev/null 2>&1 fi fi