]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use -h and -e to check for symlink existance 1826/head
authorMichael Stapelberg <stapelberg@users.noreply.github.com>
Fri, 4 Nov 2016 21:52:19 +0000 (22:52 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 10 Nov 2016 09:21:25 +0000 (10:21 +0100)
-e dereferences symlinks, making the package installation fail when the target does not exist.

debian/freeradius-config.postinst

index 942a47881ef8f5e31e0a05c9d35dc2911413c538..dcc03e7e4a18d29c590cf4c21f388c34490e096c 100644 (file)
@@ -28,7 +28,8 @@ case "$1" in
               eap_inner echo exec expiration expr files linelog logintime \
               mschap ntlm_auth pap passwd preprocess radutmp realm \
               replicate soh sradutmp unix unpack utf8 ; do
-            if [ ! -e /etc/freeradius/mods-enabled/$mod ]; then
+            if test ! -h /etc/freeradius/mods-enabled/$mod && \
+               test ! -e /etc/freeradius/mods-enabled/$mod; then
               ln -s ../mods-available/$mod /etc/freeradius/mods-enabled/$mod
             fi
           done
@@ -39,7 +40,8 @@ case "$1" in
         # want to remove them...
         if [ -z "$2" ] || dpkg --compare-versions "$2" lt 2.0.4+dfsg-4; then
           for site in default inner-tunnel; do
-            if [ ! -e /etc/freeradius/sites-enabled/$site ]; then
+            if test ! -h /etc/freeradius/sites-enabled/$site && \
+               test ! -e /etc/freeradius/sites-enabled/$site; then
               ln -s ../sites-available/$site /etc/freeradius/sites-enabled/$site
             fi
           done