diff options
Diffstat (limited to 'scripts/upgrade')
| -rw-r--r-- | scripts/upgrade | 61 |
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 |
