#!/bin/bash # Exit on command errors and treat unset variables as an error set -eu # 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 # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) path=$(ynh_app_setting_get "$app" path) admin=$(ynh_app_setting_get "$app" admin) 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" = "" || "$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* sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf # Stop Mastodon Services sudo systemctl stop mastodon-*.service # Change owner of live folder sudo chown -R $app: $final_path/live # Download Mastodon sudo su - $app <<PULLCOMMANDS pushd ~/live git fetch git reset --hard origin/master git pull https://github.com/tootsuite/mastodon.git master PULLCOMMANDS # Switch branch to tagged release cd $final_path/live sudo git checkout $(git tag | tail -n 1) # 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 # Set app public ynh_app_setting_set "$app" unprotected_uris "/" # Reload SSOwat configuration sudo yunohost app ssowatconf # Restart Mastodon sudo systemctl start mastodon-*.service