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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#! /bin/sh
# postinst script for vdr
#
# see: dh_installdeb(1)
set -e
# 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>
# * <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
#
# quoting from the policy:
# Any necessary prompting should almost always be confined to the
# post-installation script, and should be protected with a conditional
# so that unnecessary prompting doesn't happen if a package's
# installation fails and the `postinst' is called with `abort-upgrade',
# `abort-remove' or `abort-deconfigure'.
# source debconf lib
. /usr/share/debconf/confmodule
#
# Create /var/lib/video if /var/lib/video does not exist.
# If /var/lib/video.00 exists, /var/lib/video will become a symlink
#
TryCreateVideoDir() {
if [ ! -e /var/lib/video -a ! -L /var/lib/video ]; then
if [ -e /var/lib/video.00 ]; then
# No /var/lib/video but /var/lib/video.00 -> Make video a symlink pointing to video.00
ln -s video.00 /var/lib/video
else
# create /var/lib/video
mkdir /var/lib/video
fi
fi
}
InstallChannelsConf() {
[ -e /var/lib/vdr/channels.conf ] && return
case "$1" in
Satellite)
cp /usr/share/vdr/channels.conf-examples/channels.conf.sat /var/lib/vdr/channels.conf
chmod 644 /var/lib/vdr/channels.conf
;;
Terrestrial)
cp /usr/share/vdr/channels.conf-examples/channels.conf.terr /var/lib/vdr/channels.conf
chmod 644 /var/lib/vdr/channels.conf
;;
Cable)
cp /usr/share/vdr/channels.conf-examples/channels.conf.cable /var/lib/vdr/channels.conf
chmod 644 /var/lib/vdr/channels.conf
;;
esac
}
InstallUserAndGroupVdr() {
USER=vdr
GROUP=vdr
if ! getent group "$GROUP"| grep -q "^$GROUP:" ; then
echo -n "Adding group $GROUP.."
addgroup --quiet --system $GROUP
echo "..done"
fi
if ! getent passwd "$USER"| grep -q "^$USER:"; then
echo -n "Adding user $USER.."
adduser --system --home /var/lib/vdr --shell /bin/false \
--gecos "VDR user" --no-create-home \
--disabled-login --disabled-password \
--ingroup $GROUP \
$USER
echo "...done"
fi
# put vdr in group video so that it can access the DVB device nodes
adduser $USER video > /dev/null || true
}
ConfigureOwnerShip() {
# ensure that vdr's config and recording files are correctly owned
[ -e /var/lib/video ] && chown $USER:$GROUP /var/lib/video/
if [ -e /var/lib/vdr ] ; then
chown $USER:$GROUP /var/lib/vdr
chown $USER:$GROUP /var/lib/vdr/* > /dev/null 2>&1 || true
fi
if [ -e /var/cache/vdr ] ; then
chown $USER:$GROUP /var/cache/vdr
chown $USER:$GROUP /var/cache/vdr/* > /dev/null 2>&1|| true
fi
# make /usr/lib/vdr/vdr-shutdown.wrapper setuid/setgid
# (owner root:vdr, mode 6750)
if [ -e /usr/lib/vdr/vdr-shutdown.wrapper ] ; then
chown root:$GROUP /usr/lib/vdr/vdr-shutdown.wrapper && \
chmod 6750 /usr/lib/vdr/vdr-shutdown.wrapper
fi
}
case "$1" in
configure)
db_get vdr/select_dvb_card
InstallChannelsConf "$RET"
db_get vdr/create_video_dir
if $RET; then
TryCreateVideoDir
fi
InstallUserAndGroupVdr
ConfigureOwnerShip
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
db_stop
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
|