File: printer-driver-cups-pdf.postinst

package info (click to toggle)
cups-pdf 3.0.2-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 328 kB
  • sloc: ansic: 1,031; sh: 148; makefile: 12; python: 7
file content (71 lines) | stat: -rw-r--r-- 2,481 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/sh
# [postinst] for cups-pdf
#
# COPYRIGHT
# © 2003-2015 Martin-Éric Racine <martin-eric.racine@iki.fi>
# © 2009,2011 Till Kamppeter <till.kamppeter@gmail.com>
#
# LICENSE
# SPDX-License-Identifier: GPL-2.0-or-later
set -e
case "$1" in
configure)
	# Remove lint from possible upgrades.
	rm -rf /var/spool/cups-pdf/SPOOL
	# Sanitize ownerships and permissions.
	chmod 0700 /usr/lib/cups/backend/cups-pdf
	if ! [ -f /var/log/cups/cups-pdf_log ]; then
		touch /var/log/cups/cups-pdf_log
	fi
	chown root:lpadmin /var/log/cups/*
	chmod 0640 /var/log/cups/cups-pdf_log*
	chown root:lpadmin /var/spool/cups-pdf/ANONYMOUS
	chmod 1777 /var/spool/cups-pdf/ANONYMOUS
	# Ensure that CUPS is running before we manipulate its queues.
	if [ -f /etc/init.d/cups ]; then
		invoke-rc.d cups force-reload || invoke-rc.d cups start || :
	fi
	# Wait until CUPS has reloaded its configuration.
	if lpstat -h localhost -r 2>/dev/null | grep -q not; then
		t=0
		while lpstat -h localhost -r 2>/dev/null | grep -q not; do
			t=$(($t + 1))
			if [ $t = 10 ]; then
				echo "CUPS failed to reload its configuration!"
				break
			fi
			sleep 1
		done
	fi
	# Create a PDF queue if we have none yet (but NOT inside chroots; see Debian bugs #539156,#614713)
	if [ -z "$(LC_ALL=C lpstat -h localhost -v 2>/dev/null | grep 'cups-pdf:/')" ] && [ -d /run/cups/certs ]; then
		# 1) Find a name for the PDF queue.
		queue=PDF
		number=0
		while $(LC_ALL=C lpstat -h localhost -v 2>/dev/null | cut -d ':' -f 1 | cut -d ' ' -f 3 | grep -q ^$queue\$); do
			number=$(($number + 1))
			queue="PDF$number"
		done
		# 2) Find the default paper size.
		size="$(LC_ALL=C paperconf 2>/dev/null)" || size=a4
		# 3) Create the queue.
		echo | lpadmin -h localhost -p $queue -v cups-pdf:/ -m lsb/usr/cups-pdf/CUPS-PDF_opt.ppd -o pdftops-renderer-default=pdftocairo -o printer-is-shared=no -o PageSize=$size 2>/dev/null || :
		# 4) Enable the queue.
		echo | cupsenable -h localhost $queue 2>/dev/null || :
		echo | cupsaccept -h localhost $queue 2>/dev/null || :
		# 5) Set the PDF queue as default if there is no default printer yet.
		if [ -z "$(LC_ALL=C lpstat -h localhost -d 2>/dev/null | grep 'system default destination:')" ]; then
			echo | lpadmin -h localhost -d $queue 2>/dev/null || :
		fi
	else
		echo "Skipped automated creation of the PDF queue."
	fi
	;;
abort-upgrade | abort-remove | abort-deconfigure) ;;
*)
	echo "postinst called with unknown argument \`$1'" >&2
	exit 1
	;;
esac
#DEBHELPER#
exit 0