#!/bin/bash # postinst script for jitsi-meet-tokens # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) # loading debconf . /usr/share/debconf/confmodule db_get jitsi-meet-prosody/jvb-hostname JVB_HOSTNAME=$(echo "$RET" | xargs echo -n) db_get jitsi-meet-tokens/appid if [ "$RET" = "false" ] ; then echo "Application ID is mandatory" exit 1 fi APP_ID=$RET db_get jitsi-meet-tokens/appsecret if [ "$RET" = "false" ] ; then echo "Application secret is mandatory" fi APP_SECRET=$RET PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua" # Store config filename for purge db_set jitsi-meet-prosody/prosody_config "$PROSODY_HOST_CONFIG" db_stop if [ -f "$PROSODY_HOST_CONFIG" ] ; then # Install luajwt (also on update, to make sure we get the latest version). if ! luarocks install luajwtjitsi 3.0-0; then echo "Failed to install luajwtjitsi - try installing it manually" fi # search for the token auth, if this is not enabled this is the # first time we install tokens package and needs a config change if ! egrep -q '^\s*authentication\s*=\s*"token"' "$PROSODY_HOST_CONFIG"; then # enable tokens in prosody host config sed -i 's/--plugin_paths/plugin_paths/g' $PROSODY_HOST_CONFIG sed -i 's/authentication = "anonymous"/authentication = "token"/g' $PROSODY_HOST_CONFIG sed -i 's/ --allow_unencrypted_plain_auth/ allow_unencrypted_plain_auth/g' $PROSODY_HOST_CONFIG sed -i "s/ --app_id=\"example_app_id\"/ app_id=\"$APP_ID\"/g" $PROSODY_HOST_CONFIG sed -i "s/ --app_secret=\"example_app_secret\"/ app_secret=\"$APP_SECRET\"/g" $PROSODY_HOST_CONFIG sed -i 's/ --modules_enabled = { "token_verification" }/ modules_enabled = { "token_verification" }/g' $PROSODY_HOST_CONFIG sed -i '/^\s*--\s*"token_verification"/ s/--\s*//' $PROSODY_HOST_CONFIG PR10_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-0.10' 2>/dev/null | awk '{print $3}' || true)" PRTRUNK_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-trunk' 2>/dev/null | awk '{print $3}' || true)" PR_VER_INSTALLED=$(dpkg-query -f='${Version}\n' --show prosody 2>/dev/null || true) if [ "$PR10_INSTALL_CHECK" = "installed" ] \ || [ "$PR10_INSTALL_CHECK" = "unpacked" ] \ || [ "$PRTRUNK_INSTALL_CHECK" = "installed" ] \ || [ "$PRTRUNK_INSTALL_CHECK" = "unpacked" ] \ || dpkg --compare-versions "$PR_VER_INSTALLED" lt "0.11" ; then sed -i 's/module:hook_global(/module:hook(/g' /usr/share/jitsi-meet/prosody-plugins/mod_auth_token.lua fi if [ -x "/etc/init.d/prosody" ]; then invoke-rc.d prosody restart || true fi fi else echo "Prosody config not found at $PROSODY_HOST_CONFIG - unable to auto-configure token authentication" fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0