File: mumble-server.postinst

package info (click to toggle)
mumble 1.3.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 43,580 kB
  • sloc: ansic: 150,503; cpp: 71,684; xml: 14,417; python: 2,207; perl: 1,225; sh: 1,064; makefile: 685; asm: 360; php: 344; cs: 55; objc: 42; ruby: 37
file content (85 lines) | stat: -rw-r--r-- 2,745 bytes parent folder | download | duplicates (2)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#! /bin/sh
# postinst script for mumble-server

set -e

. /usr/share/debconf/confmodule

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

case "$1" in
	configure)
		# Add user and permanent directories
		if [ ! $(getent group mumble-server) ]; then
			adduser --system --quiet --home /var/lib/mumble-server --group mumble-server
		fi
		[ -d /var/lib/mumble-server ] || mkdir /var/lib/mumble-server
		chmod 0750 /var/log/mumble-server
		chmod 0750 /var/lib/mumble-server
		chown mumble-server:adm /var/log/mumble-server
		chown mumble-server:mumble-server /var/lib/mumble-server
		if [ -f /etc/mumble-server.ini ]; then
			chmod 0640 /etc/mumble-server.ini
			chown root:mumble-server /etc/mumble-server.ini
		fi
		# Workaround for when this was in .dirs
		[ -d /run/mumble-server ] && chown mumble-server:adm /run/mumble-server

		# Ensure the file we put in /etc/dbus-1/system.d is loaded
		# or mumble-server will fail to bind to dbus.
		invoke-rc.d --quiet dbus force-reload || true

		# Update /etc/default file based on config
		if [ -f /etc/default/mumble-server ] ; then
			db_get mumble-server/use_capabilities
			if [ "$RET" = "true" ] ; then
				USE_CAPABILITIES=1
			else
				USE_CAPABILITIES=0
			fi
			if grep -E ^MURMUR_USE_CAPABILITIES= /etc/default/mumble-server > /dev/null; then
				perl -pi -w -e "s/^MURMUR_USE_CAPABILITIES=.+$/MURMUR_USE_CAPABILITIES=$USE_CAPABILITIES/g" /etc/default/mumble-server
			else
				echo "MURMUR_USE_CAPABILITIES=$USE_CAPABILITIES" >> /etc/default/mumble-server
			fi
		else
			echo "/etc/default/mumble-server not found, configuration failed." >&2
		fi

		# Update SuperUser password based on config.
		# When set, clear it from config as it can't be queried and the user is
		# likely to update it outside of debconf.
		db_get mumble-server/password
		if [ "$RET" != "" ] ; then
			echo $RET | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini -readsupw"
			if [ $? = 0 ] ; then
				db_set mumble-server/password ""
			else
				echo "Failed to set SuperUser password." >&2
			fi
		fi
		db_stop
	;;

	abort-upgrade|abort-remove|abort-deconfigure)
	;;

	*)
		echo "postinst called with unknown argument \`$1'" >&2
		exit 1
	;;
esac

#DEBHELPER#

exit 0