#!/bin/bash # Exit on command errors and treat unset variables as an error set -eu app="movim" # Source YunoHost helpers source /usr/share/yunohost/helpers # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) path=$(ynh_app_setting_get "$app" path) port=$(ynh_app_setting_get "$app" port) ssoenabled=$(ynh_app_setting_get "$app" ssoenabled) public_site=$(ynh_app_setting_get "$app" public_site) timezone=`cat /etc/timezone` # Check timezone [[ -n "$timezone" ]] \ || ynh_die "Could not detect timezone, please check /etc/timezone." \ && echo "Detected timezone: $timezone" # Copy Movim source files final_path=/var/www/movim sudo cp -a ../sources "$final_path" # Create movim user if not exists and set permissions ynh_system_user_exists movim \ || sudo useradd -d /var/www/movim -s /bin/sh movim sudo chown -R movim:www-data "$final_path" sudo find "${final_path}/" -type f -print0 | sudo xargs -0 chmod 0640 sudo find "${final_path}/" -type d -print0 | sudo xargs -0 chmod 0750 # Update PHP dependencies sudo su -c "cd $final_path && php composer.phar config --global discard-changes true" movim sudo su -c "cd $final_path && php composer.phar install -n" movim # Movim configuration sudo sed -i "s@/ws/@$path/ws/@g" $final_path/app/assets/js/movim_websocket.js # Upgrade db if necessary sudo su -c "cd $final_path && php mud.php db --set" movim # Reset SSO parameters ynh_app_setting_delete "$app" protected_uris ynh_app_setting_delete "$app" skipped_uris sudo yunohost app clearaccess movim # Replace old public_site variable (if exists) by ssoenabled if [ ! -z "$public_site" ] && [ $public_site = "Yes" ]; then ynh_app_setting_delete "$app" public_site ynh_app_setting_set "$app" ssoenabled "No" elif [ ! -z "$public_site" ] && [ $public_site = "No" ]; then ynh_app_setting_delete "$app" public_site ynh_app_setting_set "$app" ssoenabled "Yes" fi # SSOwat Configuration if [ $ssoenabled = "No" ]; then ynh_app_setting_set "$app" skipped_uris "/" sudo su -c "cd $final_path && php mud.php config --xmppwhitelist=$domain" movim else ynh_app_setting_set "$app" unprotected_uris "/" # Next line is to avoid SSO to auto-connect just after disconnect sudo sed -i "s@redirect('login')@redirect('')@g" $final_path/app/controllers/DisconnectController.php fi # Update init scripts sudo sed -i "s@YHURL@$domain$path@g" ../conf/movim.{service,init} sudo sed -i "s@YHDIR@$final_path@g" ../conf/movim.{service,init} sudo sed -i "s@YHPORT@$port@g" ../conf/movim.{service,init} initcheck=`pgrep -ox systemd` if [ "$initcheck" = "1" ]; then sudo rm -f /lib/systemd/system/movim.service sudo cp ../conf/movim.service /etc/systemd/system/ sudo systemctl daemon-reload else sudo /etc/init.d/movim stop sudo cp ../conf/movim.init /etc/init.d/movim sudo chmod 755 /etc/init.d/movim sudo update-rc.d movim defaults sudo /etc/init.d/movim start fi # Update php-fpm configuration sed -i "s@YHTZ@$timezone@g" ../conf/php-fpm.conf sudo cp ../conf/php-fpm.conf /etc/php5/fpm/pool.d/movim.conf # Nginx configuration sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf sed -i "s@YHPORT@$port@g" ../conf/nginx.conf sed -i "s@//ws/@/ws/@g" ../conf/nginx.conf # Avoid duplicate / sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/movim.conf # Reload sudo service movim restart sudo service php5-fpm restart sudo service nginx reload