#!/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 url=$(curl -s https://api.github.com/repos/tootsuite/mastodon/releases/latest | sort -r | head -1 | cut -d\" -f4) version=$(echo $url | cut -d/ -f8) sudo su - $app <<SWITCHCOMMANDS pushd ~/live git checkout $(git tag | tail -n 1) SWITCHCOMMANDS # upgrade Node.js v4 to v6 node_version=$(nodejs --version) if [[ $node_version =~ ^v4.*$ ]]; then pushd /opt curl -sL https://deb.nodesource.com/setup_6.x | sudo bash - sudo apt-get -y install nodejs fi # add additional package for release 1.4 ynh_package_install pkg-config libprotobuf-dev protobuf-compiler # 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 # Restart Mastodon sudo systemctl start mastodon-*.service # Waiting start all services sleep 30 # Reload Nginx sudo systemctl reload nginx # Set app public ynh_app_setting_set "$app" unprotected_uris "/" # Reload SSOwat configuration sudo yunohost app ssowatconf