aboutsummaryrefslogtreecommitdiff
path: root/net/freeradius3/files/pkg-install.in
diff options
context:
space:
mode:
Diffstat (limited to 'net/freeradius3/files/pkg-install.in')
-rw-r--r--net/freeradius3/files/pkg-install.in97
1 files changed, 97 insertions, 0 deletions
diff --git a/net/freeradius3/files/pkg-install.in b/net/freeradius3/files/pkg-install.in
new file mode 100644
index 000000000000..ed8c6f0856f9
--- /dev/null
+++ b/net/freeradius3/files/pkg-install.in
@@ -0,0 +1,97 @@
+#!/bin/sh
+# $FreeBSD$
+
+PATH=/usr/sbin:/usr/bin:/bin ; export PATH
+
+radius_user="%%RADIUS_USER%%"
+radius_group="%%RADIUS_GROUP%%"
+
+radius_raddb_work="%%RADDB_WORK%%"
+radius_raddb="%%RADDB%%"
+radius_logdir="%%LOGDIR%%"
+radius_libdir="%%LIBDIR%%"
+
+radius_run_as_user="%%RUN_AS_USER%%"
+
+
+if [ ${radius_run_as_user} != "yes" ]; then exit 0; fi
+
+case $2 in
+ PRE-INSTALL)
+ # Fix the user and group in raddb/radiusd.conf
+ echo "===> Setting user and group in radiusd.conf"
+ for file in ${radius_raddb_work}/radiusd.conf ${radius_raddb}/radiusd.conf; do
+ if [ -w ${file} ]; then
+ if ! sed -Ee "s/^[[:space:]#]*(user[[:space:]]*=[[:space:]]*).*$/\1${radius_user}/" \
+ -e "s/^[[:space:]#]*(group[[:space:]]*=[[:space:]]*).*$/\1${radius_group}/" \
+ -i .orig ${file}; then
+ echo "Failed to patch ${file}."
+ exit 1
+ fi
+ if [ -f ${file}.orig ]; then
+ if ! rm ${file}.orig; then
+ echo "Failed to delete backup file ${file}.orig."
+ exit 1
+ fi
+ fi
+ fi
+ done
+
+ ;;
+
+ POST-INSTALL)
+ # Change ownership of directories
+ for dir in $radius_raddb $radius_logdir/radacct \
+ /var/run/radiusd ; do
+ if [ -d $dir ] || [ -L $dir ]; then
+ echo "===> Adjusting ownership of directory ${dir}"
+ if ! chown -HR $radius_user:$radius_group $dir; then
+ echo "Failed to adjust ownership of ${dir}."
+ exit 1
+ fi
+ fi
+ done
+
+ for file in $radius_logdir/radius.log $radius_logdir/radutmp \
+ $radius_logdir/radwtmp; do
+ if [ -f $file ]; then
+ echo "===> Adjusting ownership of ${file}"
+ if ! chown $radius_user:$radius_group $file; then
+ echo "Failed to adjust ownership of ${file}."
+ exit 1
+ fi
+ fi
+ done
+
+ # Update the libdir line in radiusd.conf
+ echo "===> Updating libdir in ${radius_raddb}/radiusd.conf"
+ if ! sed -i.update-libdir-original -Ee $( \
+ echo -n 's:^(libdir[[:space:]=]+)(.*[[:space:]:]+)?' ; \
+ echo -n $( echo ${radius_libdir} | \
+ sed -Ee 's:^(.*)-[[:digit:].]+$:\1:' ) ; \
+ echo -n '(-[[:digit:].]+)?([[:space:]:]+.*)?$' ; \
+ echo -n ':\1\2'${radius_libdir}'\4:' \
+ ) ${radius_raddb}/radiusd.conf; then
+ echo "Failed to update libdir in ${radius_raddb}/radius.conf"
+ exit 1
+ fi
+
+ if [ -f ${radius_raddb}/radiusd.conf.update-libdir-original ]; then
+ if ! rm ${radius_raddb}/radiusd.conf.update-libdir-original; then
+ echo -n 'Failed to delete backup file '
+ echo "${radius_raddb}/radiusd.conf.update-libdir-original."
+ exit 1
+ fi
+ fi
+
+ ;;
+esac
+
+
+# Emacs variables
+
+# Local Variables:
+# mode: sh
+# sh-basic-offset: 4
+# sh-indent-comment: nil
+# End: