56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
source="/usr/src/prosody-modules"
|
|
target="/usr/local/lib/prosody/custom-modules"
|
|
config="/usr/local/etc/prosody/conf.d/01-modules.cfg.lua"
|
|
|
|
cd ${source}
|
|
|
|
usage() {
|
|
echo "usage: $0 ext-name [ext-name ...]"
|
|
echo " ie: $0 carbons e2e_policy proxy65"
|
|
echo
|
|
echo 'Possible values for ext-name:'
|
|
find . -mindepth 1 -maxdepth 1 -type d | sort | sed s/\.\\/mod_//g | xargs
|
|
}
|
|
|
|
exts=
|
|
for ext; do
|
|
if [ -z "mod_$ext" ]; then
|
|
continue
|
|
fi
|
|
if [ ! -d "mod_$ext" ]; then
|
|
echo >&2 "error: $PWD/mod_$ext does not exist"
|
|
echo >&2
|
|
usage >&2
|
|
exit 1
|
|
fi
|
|
exts="$exts $ext"
|
|
done
|
|
|
|
if [ -z "$exts" ]; then
|
|
usage >&2
|
|
exit 1
|
|
fi
|
|
|
|
for ext in $exts; do
|
|
echo "Installing mod_${ext}"
|
|
|
|
echo " - copying to ${target}"
|
|
cp -r "${source}/mod_${ext}" "${target}/"
|
|
|
|
# Skip this if the modules should not be added to modules_enabled.
|
|
if [ "$ext" != "http_upload" ] && [ "$ext" != "vcard_muc" ] ; then
|
|
echo " - enabling within ${config}"
|
|
new_config=$(cat "${config}" | module="${ext}" perl -0pe 's/(modules_enabled[ ]*=[ ]*{[^}]*)};/$1\n\t"$ENV{module}";\n};/')
|
|
echo "${new_config}" > "${config}"
|
|
fi
|
|
# firewall module configuration
|
|
if [ "$ext" == "firewall" ] ; then
|
|
echo " - setting up mod_${ext}"
|
|
new_config=$(cat "${config}" | echo -e "\nlocal spam_blocklist = os.getenv(\"SPAM_BLOCKLIST\") and \"/usr/local/etc/prosody/firewall/\" .. os.getenv(\"SPAM_BLOCKLIST\") or \"module:scripts/spam-blocklists.pfw\"\n\nfirewall_scripts = {\n\t\"module:scripts/spam-blocking.pfw\";\n\tspam_blocklist;\n};")
|
|
echo "${new_config}" >> "${config}"
|
|
fi
|
|
done
|