Oops
[freeradius.git] / debian / freeradius-postgresql.postinst
1 #! /bin/sh
2
3 set -e
4
5 update_fs_from_statoverride() {
6   # I wish a simple dpkg-statoverride --update $file just did
7   # the right thing, but it doesn't, so we have to do it manually.
8   type=$1
9   user=$2
10   group=$3
11   mode=$4
12   file=$5
13   if [ -n "$type" -a -n "$group" -a -n "$mode" -a -n "$file" ]; then
14     if [ "$(find $file -maxdepth 0 -type $type -group $group -perm $mode)" = "" -a -$type $file ]; then
15       chgrp $group $file
16       chmod $mode $file
17     fi
18   fi
19 }
20
21 case "$1" in
22   configure)
23         for file in /etc/freeradius/sql/postgresql/cisco_h323_db_schema.sql \
24           /etc/freeradius/sql/postgresql/counter.conf \
25           /etc/freeradius/sql/postgresql/dialup.conf \
26           /etc/freeradius/sql/postgresql/ippool.conf \
27           /etc/freeradius/sql/postgresql/ippool.sql \
28           /etc/freeradius/sql/postgresql/nas.sql \
29           /etc/freeradius/sql/postgresql/schema.sql \
30           /etc/freeradius/sql/postgresql/update_radacct_group_trigger.sql \
31           /etc/freeradius/sql/postgresql/voip-postpaid.conf
32         do
33           set +e
34           so=$(dpkg-statoverride --list $file)
35           ret=$?
36           set -e
37           if [ -z "$2" ]; then
38             if [ $ret != 0 ]; then
39               dpkg-statoverride --add --update root freerad 0640 $file
40             fi
41           else
42             update_fs_from_statoverride f $so
43           fi
44         done
45
46         for dir in /etc/freeradius/sql \
47           /etc/freeradius/sql/postgresql
48         do
49           set +e
50           so=$(dpkg-statoverride --list $dir)
51           ret=$?
52           set -e
53           if [ -z "$2" ]; then
54             if [ $ret != 0 ]; then
55               dpkg-statoverride --add --update root freerad 2751 $dir
56             fi
57           else
58             update_fs_from_statoverride d $so
59           fi
60         done
61
62         if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
63           invoke-rc.d freeradius force-reload
64         else
65           /etc/init.d/freeradius force-reload
66         fi
67         ;;
68 esac
69
70 #DEBHELPER#
71
72 exit 0