diff options
Diffstat (limited to 'debian/foomatic-filters.config')
-rw-r--r-- | debian/foomatic-filters.config | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/debian/foomatic-filters.config b/debian/foomatic-filters.config new file mode 100644 index 0000000..2e5bfd9 --- /dev/null +++ b/debian/foomatic-filters.config @@ -0,0 +1,108 @@ +#!/bin/bash -e +# +# Debconf configuration script for the foomatic-filters package +# + +. /usr/share/debconf/confmodule + +db_version 2.0 +db_capb backup +db_title Foomatic Printer Filter Configuration + +declare -i state=1 backup=0 + +function parseconfig +{ + if [ -e /usr/share/foomatic/parseconfig.pl ]; then + db_clear + eval $(/usr/bin/perl /usr/share/foomatic/parseconfig.pl) + db_set foomatic-filters/config_parsed true + else + db_set foomatic-filters/config_parsed false + fi +} + +################# +### Main loop ### +################# + +parseconfig + +if [ -f /etc/foomatic/defaultspooler ]; then + db_set foomatic-filters/spooler `cat /etc/foomatic/defaultspooler`; +else + # Try to detect from installed packages; use the one found first in + # the list + spooler=`dpkg-query --showformat='${Package} ${Status}' -W cupsys lpr lprng rlpr lpr-ppd pdq ppr 2>/dev/null | grep ' installed$' | cut -d' ' -f1 | head -1` + if [ "$spooler" = cupsys ]; then + spooler=cups + elif [ "$spooler" = lpr-ppd -o "$spooler" = lpr -o "$spooler" = rlpr ]; then + spooler=lpd + fi + if [ "$spooler" ]; then + db_set foomatic-filters/spooler $spooler + else + # This script may be run before dpkg gets around to installing + # a spooler if it is done in the same apt run, so see if anything + # is in the "install" state. + spooler=`dpkg-query --showformat='${Package} ${Status}' -W cupsys lpr lprng rlpr lpr-ppd pdq ppr 2>/dev/null | grep ' install ' | cut -d' ' -f1 | head -1` + if [ "$spooler" = "cupsys" ]; then + spooler=cups + elif [ "$spooler" = lpr-ppd -o "$spooler" = lpr -o "$spooler" = rlpr ]; then + spooler=lpd + fi + if [ "$spooler" ]; then + db_set foomatic-filters/spooler $spooler + fi + fi +fi + +while ((state)); do + case $state in + 1) + db_input low foomatic-filters/spooler || true + ;; + 2) + db_input low foomatic-filters/filter_debug || true + ;; + 3) + db_get foomatic-filters/spooler; + if [ "$RET" = cups ]; then + ((backup ? state-- : state++ )) || true + continue + else + db_input low foomatic-filters/textfilter || true + fi + ;; + 4) + db_get foomatic-filters/textfilter; + if [ "$RET" = Custom ]; then + db_input low foomatic-filters/custom_textfilter || true + else + ((backup ? state-- : state++)) || true + continue + fi + ;; + 5) + db_get foomatic-filters/spooler; + if [ "$RET" = cups ]; then + db_input low foomatic-filters/ps_accounting || true + else + ((backup ? state-- : state++)) || true + continue + fi + ;; + *) + break; + ;; + esac + backup=0 + db_go || backup=1 + ((backup ? state-- : state++)) +done + +db_stop + +### Local Variables: +### tab-width: 4 +### End: |