159
if [ "$1" = configure ]; then
160
# Do the following only if CUPS is running and the needed CUPS tools
162
if which lpstat > /dev/null 2>&1 && \
163
which lpinfo > /dev/null 2>&1 && \
164
which lpadmin > /dev/null 2>&1 && \
165
lpstat -r > /dev/null 2>&1; then
166
# Update the PPD files of all already installed print queues
167
driverregexp='^lsb/usr/cups-included/'
168
gennicknameregexp='s/,\s*\d+\.\d+[\d\.]*$//i'
169
[ ! -z "$gennicknameregexp" ] && \
170
gennicknameregexp="; $gennicknameregexp"
171
gennicknameregexp='s/\s*\(recommended\)//'"$gennicknameregexp"
173
trap 'rm -f $tempfiles; exit 0' 0 1 2 13 15
174
tmpfile1=`mktemp -t updateppds.XXXXXX`
175
tempfiles="$tempfiles $tmpfile1"
176
lpinfo -m | grep -E $driverregexp > $tmpfile1
178
for ppd in `ls -1 *.ppd 2>/dev/null`; do
180
nickname=`grep '\*NickName:' $ppd | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
181
lang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
184
tmpfile2=`mktemp -t updateppds.XXXXXX`
185
tempfiles="$tempfiles $tmpfile2"
186
cat $tmpfile1 | perl -p -e "$gennicknameregexp" | grep -E '^\S+\s+.*'"$nickname"'$' | cut -d ' ' -f 1 > $tmpfile2
187
while read newppduri; do
188
[ "$ppdfound" = "0" ] && lpadmin -p $queue -m $newppduri
189
newlang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
190
[ "$newlang" = "$lang" ] && ppdfound="1"
191
[ "$newlang" = "english" ] && englishppduri="$newppduri"
193
[ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p $queue -m $englishppduri && ppdfound="1"
194
[ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2