aboutsummaryrefslogtreecommitdiffstats
path: root/main/freeradius
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2020-02-17 16:34:31 +0100
committerJakub Jirutka <jakub@jirutka.cz>2020-02-17 16:34:42 +0100
commit1512fdcfee1707fbf7f6d0db69a17690bb1d7ebd (patch)
treee9da88443ee6133e81dc3ea9cf579e49207deeb2 /main/freeradius
parent802673c5f1846aa0c61f1a2bff4392305fa6f333 (diff)
main/freeradius: improve setup-freeradius enable-mod
Diffstat (limited to 'main/freeradius')
-rw-r--r--main/freeradius/APKBUILD2
-rw-r--r--main/freeradius/setup-freeradius.in32
2 files changed, 28 insertions, 6 deletions
diff --git a/main/freeradius/APKBUILD b/main/freeradius/APKBUILD
index 7d7880b35bf..59c8ce5a711 100644
--- a/main/freeradius/APKBUILD
+++ b/main/freeradius/APKBUILD
@@ -394,7 +394,7 @@ sha512sums="513ed0a5d9e6b9a8d89a9b02c86ff528a9ff14d928f4c1040ca44702465abd711588
c3ae1ee6bd7743f883310612ba2c20c6ff7f288fedc308735df05b097ecb2f7fa4d1679b844e262757808978c7bb2d7630b99e4b87ce6d6ba7f84013f9c49f1d freeradius.logrotated
bb3df1fa2c9ed95514ae090e0f6619c4e3280f424c4351bc79f5254bf1a327fa7d27e5fe3add5ab8d9e5ba3792c9553bd9a0481fe9c5bc34945ce46627ef2638 radiusd.confd
a66ab5d3f1c86450e9c50aa8be10a40fb4118467670048773ad8c80b5f3fb958dd3addc6ef245289d93ce2b184ce2c9882a8a2585d4a134d55c2326c9559f558 radiusd.initd
-0a3d7c5a3d33186903fdf0fd9d0d817bdc3e81567dbd72646492652cddbad458936d7cd662f41b747a023f59ddbab1456b9cdd6c6997d9bc5d039bd4be92fb4f setup-freeradius.in
+9f6a4f76fd06e81cfcfe4536f1f8be494634b07e548a6f7e651e5501aded24b030ed7d57dbdc867ae0eb39ee4a090234c4122a89bed84c13733c77de36b9c2cf setup-freeradius.in
5f940e200aa39b2fbbfaf5b24f2ad99869fa75bb7e2008876940ea96cb9dbc7f2b27dd1672aa56cdb5243faabdcbc38875594dd8792af965987183c0aa2aefd1 print-var.mk
c49e5eec7497fccde5fd09dba1ea9b846e57bc88015bd81640aa531fb5c9b449f37136f42c85fe1d7940c5963aed664b85da28442b388c9fb8cc27873df03b2d musl-fix-headers.patch
41d478c0e40ff82fc36232964037c1ab8ffca9fdbb7dca02ed49319906e751c133b5d7bc7773c645cec6d9d39d1de69cba25e8d59afa8d6662563dd17f35f234 fix-scopeid.patch
diff --git a/main/freeradius/setup-freeradius.in b/main/freeradius/setup-freeradius.in
index 52c9e3ac339..739488b5668 100644
--- a/main/freeradius/setup-freeradius.in
+++ b/main/freeradius/setup-freeradius.in
@@ -3,6 +3,19 @@ set -eu
PROGNAME='setup-freeradius'
DEFAULT_MODULES='@@DEFAULT_MODULES@@'
+# <subpkgname|module-name> <module-name>...
+EXTRA_MODULES='
+ dhcp
+ eap inner-eap
+ krb5
+ ldap
+ pam
+ perl
+ python3
+ redis rediswho
+ rest
+ sql abfab_psk_sql dhcp_sqlippool sqlcounter sqlippool
+ '
MODS_AVAILABLE_DIR='/etc/raddb/mods-available'
MODS_ENABLED_DIR='/etc/raddb/mods-enabled'
SITES_AVAILABLE_DIR='/etc/raddb/sites-available'
@@ -14,6 +27,13 @@ die() {
exit $1
}
+find_mod_pkg() {
+ echo "$EXTRA_MODULES" \
+ | grep -m 1 -w "$1" \
+ | sed -En 's/^\s*(\S+).*/freeradius-\1/p' \
+ | grep .
+}
+
case "${1:-}" in
'' | -h | --help)
cat >&2 <<-EOF
@@ -33,21 +53,23 @@ case "${1:-}" in
EOF
exit 2
;;
- enable-mod)
+ enable-mod | enable-module)
name=$2
modlink="$MODS_ENABLED_DIR/$name"
if [ -L "$modlink" ]; then
exit 0
- elif [ -f "$MODS_AVAILABLE_DIR/$name" ]; then
+ fi
+ if pkgname=$(find_mod_pkg "$name"); then
+ apk add "$pkgname"
+ fi
+ if [ ! -L "$modlink" ] && [ -f "$MODS_AVAILABLE_DIR/$name" ]; then
ln -sv ../mods-available/$name "$MODS_ENABLED_DIR/$name"
- elif apk info -q "freeradius-$name" >/dev/null; then
- apk add "freeradius-$name"
else
die 3 "module '$name' is not available!"
fi
;;
- disable-mod)
+ disable-mod | disable-modules)
name=$2
modlink="$MODS_ENABLED_DIR/$name"