case "$1" in configure) # Do the following only if CUPS is running and the needed CUPS tools # are available if which lpstat > /dev/null 2>&1 && \ which lpinfo > /dev/null 2>&1 && \ which lpadmin > /dev/null 2>&1 && \ lpstat -r > /dev/null 2>&1; then # Update the PPD files of all already installed print queues driverregexp='^foomatic:' gennicknameregexp='' [ ! -z "$gennicknameregexp" ] && \ gennicknameregexp="; $gennicknameregexp" gennicknameregexp='s/\s*\(recommended\)//'"$gennicknameregexp" tempfiles= trap 'rm -f $tempfiles; exit 0' 0 1 2 13 15 tmpfile1=`mktemp -t updateppds.XXXXXX` tempfiles="$tempfiles $tmpfile1" lpinfo -m | grep -E $driverregexp > $tmpfile1 cd /etc/cups/ppd for ppd in `ls -1 *.ppd 2>/dev/null`; do queue=${ppd%.ppd} nickname=`grep '\*NickName:' $ppd | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'` lang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'` ppdfound="0" englishppduri="" tmpfile2=`mktemp -t updateppds.XXXXXX` tempfiles="$tempfiles $tmpfile2" cat $tmpfile1 | perl -p -e "$gennicknameregexp" | grep -E '^\S+\s+.*'"$nickname"'$' | cut -d ' ' -f 1 > $tmpfile2 while read newppduri; do [ "$ppdfound" = "0" ] && lpadmin -p $queue -m $newppduri newlang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'` [ "$newlang" = "$lang" ] && ppdfound="1" [ "$newlang" = "english" ] && englishppduri="$newppduri" done < $tmpfile2 [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p $queue -m $englishppduri && ppdfound="1" [ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2 done fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0