diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2020-02-17 16:34:31 +0100 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2020-02-17 16:34:42 +0100 |
commit | 1512fdcfee1707fbf7f6d0db69a17690bb1d7ebd (patch) | |
tree | e9da88443ee6133e81dc3ea9cf579e49207deeb2 /main/freeradius | |
parent | 802673c5f1846aa0c61f1a2bff4392305fa6f333 (diff) |
main/freeradius: improve setup-freeradius enable-mod
Diffstat (limited to 'main/freeradius')
-rw-r--r-- | main/freeradius/APKBUILD | 2 | ||||
-rw-r--r-- | main/freeradius/setup-freeradius.in | 32 |
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" |