diff --git a/scripts/upgrade b/scripts/upgrade index 79df33b..656e0f8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -179,255 +179,6 @@ ynh_script_progression --message="Reloading NGINX web server..." --weight=1 ynh_systemd_action --service_name=nginx --action=reload -#================================================= -# END OF SCRIPT -#================================================= - - -Skip to content -Pull requests -Issues -Codespaces -Marketplace -Explore -@rodinux -YunoHost-Apps / -cryptpad_ynh -Public - -Fork your own copy of YunoHost-Apps/cryptpad_ynh - -Code -Issues 10 -Pull requests 1 -Actions -Projects -Security - - Insights - -cryptpad_ynh/scripts/upgrade -@rodinux -rodinux update -Latest commit fef096a Feb 12, 2023 -History -8 contributors -@ericgaspar -@JimboJoe -@frju365 -@shinenelson -@tituspijean -@rodinux -@Ddataa -@yalh76 -231 lines (183 sloc) 8.51 KB -#!/bin/bash - -#================================================= -# GENERIC START -#================================================= -# IMPORT GENERIC HELPERS -#================================================= - -source _common.sh -source /usr/share/yunohost/helpers - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 - -app=$YNH_APP_INSTANCE_NAME - -domain=$(ynh_app_setting_get --app=$app --key=domain) -path_url=$(ynh_app_setting_get --app=$app --key=path) -admin=$(ynh_app_setting_get --app=$app --key=admin) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -email=$(ynh_user_get_info --username=$admin --key=mail) -port=$(ynh_app_setting_get --app=$app --key=port) -porti=$(ynh_app_setting_get --app=$app --key=porti) - -#================================================= -# CHECK VERSION -#================================================= -ynh_script_progression --message="Checking version..." - -upgrade_type=$(ynh_check_app_version_changed) - -#================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP -#================================================= -ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1 - -# Backup the current version of the app -ynh_backup_before_upgrade -ynh_clean_setup () { - ynh_clean_check_starting - # Restore it if the upgrade fails - ynh_restore_upgradebackup -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# STANDARD UPGRADE STEPS -#================================================= -# STOP SYSTEMD SERVICE -#================================================= -ynh_script_progression --message="Stopping a systemd service..." --weight=1 - -ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" - -#================================================= -# ENSURE DOWNWARD COMPATIBILITY -#================================================= -ynh_script_progression --message="Ensuring downward compatibility..." --weight=2 - -# If final_path doesn't exist, create it -if [ -z "$final_path" ]; then - final_path=/var/www/$app - ynh_app_setting_set --app=$app --key=final_path --value=$final_path -fi - -# Cleaning legacy permissions -if ynh_legacy_permissions_exists; then - ynh_legacy_permissions_delete_all - - ynh_app_setting_delete --app=$app --key=is_public -fi - -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 - -# Create a dedicated user (if not existing) -ynh_system_user_create --username=$app --home_dir="$final_path" - -#================================================= -# DOWNLOAD, CHECK AND UNPACK SOURCE -#================================================= - -if [ "$upgrade_type" == "UPGRADE_APP" ] -then - ynh_script_progression --message="Upgrading source files..." --weight=1 - - # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" --keep="config/config.js customize/" - - chmod 750 "$final_path" - chmod -R o-rwx "$final_path" - chown -R $app:$app "$final_path" -fi - -#================================================= -# APPLY FOLDER GROUP RIGHTS FOR WWW-DATA -#================================================= -chgrp -R www-data $final_path - -#================================================= -# CREATE A SANDBOX DOMAIN -#================================================= -# if the main domain for the app is a root domain, we create a correct sandbox subdomain -if [[ $domain == *"."* ]]; then - sandboxdomain=sandbox.$domain -fi -# if the main domain for the app is already a sub-domain, we create a correct sandbox domain -if [[ $domain == *"."*"."* ]]; then - sandboxdomain=sandbox-$domain -fi -# if the main domain for the app is a .local root domain, we create a correct sandbox subdomain -if [[ $domain == *".local" ]]; then - sandboxdomain=sandbox-$domain -fi - -ynh_script_progression --message="Setting up sandobx domain : $sandboxdomain" --weight=1 - -# We don't test that in CI -if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then - yunohost domain add $sandboxdomain - yunohost domain config set $sandboxdomain -a "mail_in=0&mail_out=0" -fi - -#================================================= -# NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 - -# Create a dedicated NGINX config -ynh_add_nginx_config - -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -ynh_script_progression --message="Upgrading dependencies..." --weight=6 - -ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version - -#================================================= -# INSTALL CRYPTPAD -#================================================= -ynh_script_progression --message="Building $app... (this will take some time and resources!)" --weight=60 - -pushd "$final_path" - ynh_exec_warn_less npm install --allow-root - ynh_exec_warn_less npm install -g bower - ynh_exec_warn_less bower update --allow-root - ynh_exec_warn_less npm i - ynh_exec_warn_less npm run build -popd - -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 - -env_path="$PATH" -# Create a dedicated systemd config -ynh_add_systemd_config - -#================================================= -# GENERIC FINALIZATION -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - -yunohost service add $app --description="Zero Knowledge realtime collaborative editor" --log="/var/log/$app/$app.log" - -#================================================= -# ADD UPGRADED CONFIG WITH SANDBOX -#================================================= -ynh_add_config --template="../conf/config.js" --destination="$final_path/config/config.js" - -#================================================= -# START SYSTEMD SERVICE -#================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 - -ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="server available" - -#================================================= -# COPY NGINX CONF IN SANDBOX DOMAIN -#================================================= -# We don't test that in CI -if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then - ynh_add_config --template="/etc/nginx/conf.d/$domain.d/cryptpad.conf" --destination="/etc/nginx/conf.d/$sandboxdomain.d/cryptpad.conf" -fi - -# We authorize access to sandbox domain -# We don't test that in CI -if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then - ynh_permission_url --permission="main" --add_url=$sandboxdomain --auth_header=true -fi - -#================================================= -# RELOAD NGINX -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -ynh_systemd_action --service_name=nginx --action=reload - #================================================= # SEND A README FOR THE ADMIN #================================================= @@ -449,5 +200,4 @@ ynh_send_readme_to_admin "$message" # END OF SCRIPT #================================================= - ynh_script_progression --message="Upgrade of $app completed" --last