build-plugins.sh 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. set -e
  3. MAILHOST=$1
  4. cd $(dirname $0)
  5. wget -O integrator.tar.gz https://github.com/inverse-inc/sogo-integrator.tb31/archive/master.tar.gz
  6. wget -O connector.tar.gz https://github.com/inverse-inc/sogo-connector.tb31/archive/master.tar.gz
  7. mkdir -p integrator connector
  8. tar --strip-components=1 -C integrator -xf integrator.tar.gz
  9. tar --strip-components=1 -C connector -xf connector.tar.gz
  10. # build custom integrator
  11. while read DOMAIN; do
  12. echo "Building SOGo Integrator for $DOMAIN hosted on $MAILHOST"
  13. PORT_NUM=$(dig -t srv _autodiscover._tcp.$DOMAIN +short | tail -n 1 | awk '{print $3}')
  14. if [[ -z ${PORT_NUM} ]]; then
  15. PORT_NUM=443
  16. fi
  17. cd integrator
  18. echo > defaults/preferences/site.js
  19. mkdir -p custom/${DOMAIN}
  20. cp -r custom/sogo-demo/* custom/${DOMAIN}/
  21. sed -i "s/http:\/\/sogo-demo\.inverse\.ca/https:\/\/${MAILHOST}:${PORT_NUM}/g" custom/${DOMAIN}/chrome/content/extensions.rdf
  22. sed -i "s/plugins\/updates\.php[?]/thunderbird-plugins.php?domain=${DOMAIN}\&/g" custom/${DOMAIN}/chrome/content/extensions.rdf
  23. echo 'pref("sogo-integrator.autocomplete.server.urlid", "'${DOMAIN}'");' > custom/${DOMAIN}/defaults/preferences/site.js
  24. echo 'pref("mail.collect_email_address_outgoing", false);' >> custom/${DOMAIN}/defaults/preferences/site.js
  25. sed -i 's/<\/Seq>/<li><Description em:id="sieve@mozdev.org" em:name="Sieve"\/><\/li><li><Description em:id="imap-acl@sirphreak.com" em:name="Imap-ACL-Extension"\/><\/li><\/Seq>/g' custom/${DOMAIN}/chrome/content/extensions.rdf
  26. make build=${DOMAIN}
  27. INTEGRATOR_VER=$(grep em:version install.rdf | awk -F '"' '{print $2}')
  28. cp sogo-integrator-*-${DOMAIN}.xpi ../sogo-integrator-${INTEGRATOR_VER}-${DOMAIN}.xpi
  29. cd ..
  30. done
  31. # build connector
  32. cd connector
  33. make
  34. CONNECTOR_VER=$(grep em:version install.rdf | awk -F '"' '{print $2}')
  35. cp sogo-connector-*.xpi ../sogo-connector-${CONNECTOR_VER}.xpi
  36. cd ..
  37. # download Sieve plugin
  38. SIEVE_RELEASES=$(wget --header="Accept: application/vnd.github.v3+json" -qO - https://api.github.com/repos/thsmi/sieve/releases)
  39. SIEVE_VER=$(echo "$SIEVE_RELEASES" | grep -o '"tag_name": *"[^"]*"' | head -n 1 | awk -F '"' '{print $4}')
  40. SIEVE_URL=$(echo "$SIEVE_RELEASES" | grep -o '"browser_download_url": *"[^"]*"' | head -n 1 | awk -F '"' '{print $4}')
  41. wget -O sieve-${SIEVE_VER}.xpi ${SIEVE_URL}
  42. unset SIEVE_RELEASES
  43. # download ACL plugin
  44. IMAP_ACL_RELEASES=$(wget -qO - 'https://addons.mozilla.org/api/v3/addons/addon/176736')
  45. IMAP_ACL_VER=$(echo "$IMAP_ACL_RELEASES" | grep -o '"version": *"[^"]*"' | head -n 1 | awk -F '"' '{print $4}')
  46. IMAP_ACL_URL=$(echo "$IMAP_ACL_RELEASES" | grep -o '"url": *"[^"]*\.xpi' | head -n 1 | awk -F '"' '{print $4}')
  47. wget -O imap_acl_extension-${IMAP_ACL_VER}-tb.xpi ${IMAP_ACL_URL}
  48. unset IMAP_ACL_RELEASES
  49. # update version file
  50. echo "sogo-connector@inverse.ca;${CONNECTOR_VER};sogo-connector-${CONNECTOR_VER}.xpi" > version.csv
  51. echo "sogo-integrator@inverse.ca;${INTEGRATOR_VER};sogo-integrator-${INTEGRATOR_VER}-__DOMAIN__.xpi" >> version.csv
  52. echo "sieve@mozdev.org;${SIEVE_VER};sieve-${SIEVE_VER}.xpi" >> version.csv
  53. echo "imap-acl@sirphreak.com;${IMAP_ACL_VER};imap_acl_extension-${IMAP_ACL_VER}-tb.xpi" >> version.csv
  54. rm -rf connector integrator *.tar.gz