aboutsummaryrefslogtreecommitdiff
path: root/scripts/upgrade
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/upgrade')
-rw-r--r--scripts/upgrade61
1 files changed, 38 insertions, 23 deletions
diff --git a/scripts/upgrade b/scripts/upgrade
index 771b98b..b5d1b31 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -3,8 +3,10 @@
# 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
+# Loads the generic functions usually used in the script
+source .fonctions
+# Source YunoHost helpers
+source /usr/share/yunohost/helpers
# See comments in install script
app=$YNH_APP_INSTANCE_NAME
@@ -13,12 +15,12 @@ app=$YNH_APP_INSTANCE_NAME
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)
+language=$(ynh_app_setting_get "$app" language)
CHECK_PATH # Checks and corrects the syntax of the path.
# Check if admin is not null
-if [[ "$admin" = "" || "$is_public" = "" || "$language" = "" ]]; then
+if [[ "$admin" = "" || "$language" = "" ]]; then
echo "Unable to upgrade, please contact support"
ynh_die
fi
@@ -30,31 +32,44 @@ 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*
+sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
# Stop Mastodon Services
-sudo systemctl stop /etc/systemd/system/mastodon-*.service
+sudo systemctl stop mastodon-*.service
-# Update Mastodon
-sudo su - $app <<COMMANDS
+# Change owner of live folder
+sudo chown -R $app: $final_path/live
+
+# Download Mastodon
+sudo su - $app <<PULLCOMMANDS
pushd ~/live
-git pull
-RAILS_ENV=production bin/bundle exec rails db:migrate
-RAILS_ENV=production bin/bundle exec rails assets:precompile
-COMMANDS
+git fetch
+git reset --hard origin/master
+git pull https://github.com/tootsuite/mastodon.git master
+PULLCOMMANDS
-# Start Mastodon Services
-sudo systemctl start /etc/systemd/system/mastodon-*.service
+# Switch branch to tagged release
+cd $final_path/live
+sudo git checkout $(git tag | tail -n 1)
-# 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
+# Apply Mastodon upgrade
+sudo su - $app <<COMMANDS
+pushd ~/live
+bin/bundle install
+yarn install --pure-lockfile
+RAILS_ENV=production bundle exec rails assets:clean
+RAILS_ENV=production bundle exec rails assets:precompile
+RAILS_ENV=production bundle exec rails db:migrate
+COMMANDS
# Reload Nginx
sudo systemctl reload nginx
-# Reload Mastodon
-sudo systemctl restart mastodon-*.service
+
+# Set app public
+ynh_app_setting_set "$app" unprotected_uris "/"
+
+# Reload SSOwat configuration
+sudo yunohost app ssowatconf
+
+# Restart Mastodon
+sudo systemctl start mastodon-*.service