You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

jitsi-meet-tokens.postinst 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #!/bin/bash
  2. # postinst script for jitsi-meet-tokens
  3. #
  4. # see: dh_installdeb(1)
  5. set -e
  6. # summary of how this script can be called:
  7. # * <postinst> `configure' <most-recently-configured-version>
  8. # * <old-postinst> `abort-upgrade' <new version>
  9. # * <conflictor's-postinst> `abort-remove' `in-favour' <package>
  10. # <new-version>
  11. # * <postinst> `abort-remove'
  12. # * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
  13. # <failed-install-package> <version> `removing'
  14. # <conflicting-package> <version>
  15. # for details, see http://www.debian.org/doc/debian-policy/ or
  16. # the debian-policy package
  17. case "$1" in
  18. configure)
  19. # loading debconf
  20. . /usr/share/debconf/confmodule
  21. db_get jitsi-meet-prosody/jvb-hostname
  22. JVB_HOSTNAME=$(echo "$RET" | xargs echo -n)
  23. db_get jitsi-meet-tokens/appid
  24. if [ "$RET" = "false" ] ; then
  25. echo "Application ID is mandatory"
  26. exit 1
  27. fi
  28. APP_ID=$RET
  29. db_get jitsi-meet-tokens/appsecret
  30. if [ "$RET" = "false" ] ; then
  31. echo "Application secret is mandatory"
  32. fi
  33. APP_SECRET=$RET
  34. PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua"
  35. # Store config filename for purge
  36. db_set jitsi-meet-prosody/prosody_config "$PROSODY_HOST_CONFIG"
  37. db_stop
  38. if [ -f "$PROSODY_HOST_CONFIG" ] ; then
  39. # search for the token auth, if this is not enabled this is the
  40. # first time we install tokens package and needs a config change
  41. if ! egrep -q '^\s*authentication\s*=\s*"token"' "$PROSODY_HOST_CONFIG"; then
  42. # enable tokens in prosody host config
  43. sed -i 's/--plugin_paths/plugin_paths/g' $PROSODY_HOST_CONFIG
  44. sed -i 's/authentication = "anonymous"/authentication = "token"/g' $PROSODY_HOST_CONFIG
  45. sed -i 's/ --allow_unencrypted_plain_auth/ allow_unencrypted_plain_auth/g' $PROSODY_HOST_CONFIG
  46. sed -i "s/ --app_id=\"example_app_id\"/ app_id=\"$APP_ID\"/g" $PROSODY_HOST_CONFIG
  47. sed -i "s/ --app_secret=\"example_app_secret\"/ app_secret=\"$APP_SECRET\"/g" $PROSODY_HOST_CONFIG
  48. sed -i 's/ --modules_enabled = { "token_verification" }/ modules_enabled = { "token_verification" }/g' $PROSODY_HOST_CONFIG
  49. sed -i '/^\s*--\s*"token_verification"/ s/--\s*//' $PROSODY_HOST_CONFIG
  50. # Install luajwt
  51. if ! luarocks install luajwtjitsi; then
  52. echo "Failed to install luajwtjitsi - try installing it manually"
  53. fi
  54. # Install basexx
  55. if ! luarocks install basexx; then
  56. echo "Failed to install basexx - try installing it manually"
  57. fi
  58. PR10_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-0.10' 2>/dev/null | awk '{print $3}' || true)"
  59. PRTRUNK_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-trunk' 2>/dev/null | awk '{print $3}' || true)"
  60. PR_VER_INSTALLED=$(dpkg-query -f='${Version}\n' --show prosody 2>/dev/null || true)
  61. if [ "$PR10_INSTALL_CHECK" = "installed" ] \
  62. || [ "$PR10_INSTALL_CHECK" = "unpacked" ] \
  63. || [ "$PRTRUNK_INSTALL_CHECK" = "installed" ] \
  64. || [ "$PRTRUNK_INSTALL_CHECK" = "unpacked" ] \
  65. || dpkg --compare-versions "$PR_VER_INSTALLED" lt "0.11" ; then
  66. sed -i 's/module:hook_global(/module:hook(/g' /usr/share/jitsi-meet/prosody-plugins/mod_auth_token.lua
  67. fi
  68. if [ -x "/etc/init.d/prosody" ]; then
  69. invoke-rc.d prosody restart || true
  70. fi
  71. fi
  72. else
  73. echo "Prosody config not found at $PROSODY_HOST_CONFIG - unable to auto-configure token authentication"
  74. fi
  75. ;;
  76. abort-upgrade|abort-remove|abort-deconfigure)
  77. ;;
  78. *)
  79. echo "postinst called with unknown argument \`$1'" >&2
  80. exit 1
  81. ;;
  82. esac
  83. # dh_installdeb will replace this with shell code automatically
  84. # generated by other debhelper scripts.
  85. #DEBHELPER#
  86. exit 0