aboutsummaryrefslogtreecommitdiff
path: root/scripts/upgrade
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/upgrade')
-rw-r--r--scripts/upgrade54
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/upgrade b/scripts/upgrade
new file mode 100644
index 0000000..0260ee1
--- /dev/null
+++ b/scripts/upgrade
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# Exit on command errors and treat unset variables as an error
+set -eu
+
+source .fonctions # Loads the generic functions usually used in the script
+source /usr/share/yunohost/helpers # Source YunoHost helpers
+
+# See comments in install script
+app=$YNH_APP_INSTANCE_NAME
+
+# Retrieve app settings
+domain=$(ynh_app_setting_get "$app" domain)
+path=$(ynh_app_setting_get "$app" path)
+admin=$(ynh_app_setting_get "$app" admin)
+is_public=$(ynh_app_setting_get "$app" is_public)
+
+CHECK_PATH # Checks and corrects the syntax of the path.
+
+# Check if admin is not null
+if [[ "$admin" = "" || "$is_public" = "" || "$language" = "" ]]; then
+ echo "Unable to upgrade, please contact support"
+ ynh_die
+fi
+
+final_path=/opt/$app
+
+db_name=$app
+
+# Modify Nginx configuration file and copy it to Nginx conf directory
+sudo sed -i "s@__PATH__@$app@g" ../conf/nginx.conf*
+sudo sed -i "s@__FINALPATH__@$final_path/@g" ../conf/nginx.conf*
+
+# Update Mastodon
+sudo su - $app <<COMMANDS
+pushd ~/live
+git pull
+RAILS_ENV=production bin/bundle exec rails db:migrate
+RAILS_ENV=production bin/bundle exec rails assets:precompile
+COMMANDS
+
+# If app is public, add url to SSOWat conf as skipped_uris
+if [ $is_public = "Yes" ];
+then
+ ynh_app_setting_set "$app" unprotected_uris "/"
+ sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
+else
+ sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
+fi
+
+# Reload Nginx
+sudo systemctl reload nginx
+# Reload Mastodon
+sudo systemctl restart mastodon-*.service \ No newline at end of file