home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- set -e
-
- CONF=/etc/cups/cupsd.conf
- PORTS=/etc/cups/cups.d/ports.conf
- BROWSE=/etc/cups/cups.d/browse.conf
-
- # Debconf library
- . /usr/share/debconf/confmodule
-
- is_ports () {
- # syntax: parse_ports string (0: success 1: error)
- VAL=$(echo "$1" | LC_ALL=C perl -e '$ret = ""; while (<STDIN>) { chomp;
- @values = split(/\s+/);
- foreach(@values) {
- if (/^\d+$/ && $_ >= 0 && $_ < 65536) {
- # PORT
- $ret .= "Port $_\\n";
- } elsif (/^\d+\.\d+\.\d+\.\d+$/ || /^\d+\.\d+\.\d+\.\d+:\d+$/) {
- # IP
- $ret .= "Listen $_\\n";
- } elsif (/^[a-zA-Z0-9-_.*]+$/ || /^[a-zA-Z0-9-_.*]+:\d+$/) {
- my($tmp) = $_;
- if (/^[a-zA-Z0-9-_.*]+:(\d+)$/) {
- if ($1 < 0 || $1 > 65535) {
- # ERROR
- $ret = "";
- last;
- }
- }
- # HOSTNAME
- $ret .= "Listen $_\\n";
- } elsif (/^\//) {
- # domain socket
- $ret .= "Listen $_\\n";
- } else {
- # ERROR
- $ret = "";
- last;
- }
- }
- print $ret;
- }')
-
- if [ -z "$VAL" ]; then
- return 1
- else
- return 0
- fi
- }
-
- db_get cupsys/raw-print
- OLD_RET=$RET
-
- db_input low cupsys/raw-print || true
- db_go
-
- db_get cupsys/raw-print
- if [ "$OLD_RET" != "$RET" ]; then
- db_fset cupsys/raw-print changed true
- fi
-
- # remove parallel from PPC default
- ARCH=`dpkg --print-architecture`
- if [ "$ARCH" = "ppc" -o "$ARCH" = "ppc-none" ]; then
- db_fget cupsys/backend seen
- if [ "$RET" = "false" ]; then
- db_set cupsys/backend "ipp, lpd, socket, usb"
- fi
- fi
-
- db_get cupsys/backend
- OLD_RET=$RET
-
- db_input low cupsys/backend || true
- db_go
-
- db_get cupsys/backend
- if [ "$OLD_RET" != "$RET" ]; then
- db_fset cupsys/backend changed true
- fi
-
- #RET=
- #if [ -f "$CONF" ]; then
- # if [ "$(grep -h "Include[[:space:]]\+$PORTS" $CONF)" -a -f "$PORTS" ]; then
- # RET=$(grep -h -e "^\(Port\|Listen\)[[:space:]]\+" $CONF $PORTS | sort | uniq | sed -e "s/Port[[:space:]]\+//" -e "s/Listen[[:space:]]\+//" | tr "\n" " ")
- # else
- # RET=$(grep -h -e "^\(Port\|Listen\)[[:space:]]\+" $CONF | sort | uniq | sed -e "s/Port[[:space:]]\+//" -e "s/Listen[[:space:]]\+//" | tr "\n" " ")
- # fi
- # if [ "$RET" ]; then
- # db_set cupsys/ports $RET
- # fi
- # db_input low cupsys/ports || true
- # db_go
- # db_get cupsys/ports
- # STATE=0
- # while ! is_ports "$RET"; do
- # db_input critical cupsys/portserror || true
- # db_go
- # db_fset cupsys/ports seen false
- # STATE=$(expr $STATE + 1)
- # if [ "$STATE" = "5" ]; then
- # echo "Illegal port value for CUPS. Please correct this by running 'dpkg-reconfigure cupsys'."
- # exit 1
- # fi
- # db_input high cupsys/ports || true
- # db_go
- # db_get cupsys/ports
- # done
-
- # if [ "$(grep -h "Include[[:space:]]\+$BROWSE" $CONF)" -a -f "$BROWSE" ]; then
- # RET=$(grep -h -e "^Browsing[[:space:]]\+" $CONF $BROWSE | head -1 | sed -e "s/Browsing[[:space:]]\+//" | tr "A-Z" "a-z")
- # else
- # RET=$(grep -h -e "^Browsing[[:space:]]\+" $CONF | head -1 | sed -e "s/Browsing[[:space:]]\+//" | tr "A-Z" "a-z")
- # fi
- # if [ "$RET" = "off" ]; then
- # db_set cupsys/browse false
- # fi
- # db_input low cupsys/browse || true
- # db_go
- #else
- # db_input low cupsys/ports || true
- # db_go
- # db_get cupsys/ports
- # STATE=0
- # while ! is_ports "$RET"; do
- # db_input critical cupsys/portserror || true
- # db_go
- # db_fset cupsys/ports seen false
- # STATE=$(expr $STATE + 1)
- # if [ "$STATE" = "5" ]; then
- # echo "Illegal port value for CUPS. Please correct this by running 'dpkg-reconfigure cupsys'."
- # exit 1
- # fi
- # db_input low cupsys/ports || true
- # db_go
- # db_get cupsys/ports
- # done
- # db_input low cupsys/browse || true
- # db_go
- #fi
-