diff --git a/scripts/upgrade b/scripts/upgrade index d9c815b..8e3091f 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -7,99 +7,45 @@ source _common.sh source /usr/share/yunohost/helpers -### Settings are automatically loaded as bash variables -### in every app script context, therefore typically these will exist: -### - $domain -### - $path -### - $language -### - $install_dir -### - $port -### ... - -### In the context of upgrade, -### - resources are automatically provisioned / updated / deleted (depending on existing resources) -### - a safety backup is automatically created by the core and will be restored if the upgrade fails - #================================================= # STOP SYSTEMD SERVICE #================================================= + ynh_script_progression "Stopping $app's systemd service..." ynh_systemctl --service="$app" --action="stop" -#================================================= -# ENSURE DOWNWARD COMPATIBILITY -#================================================= -#ynh_script_progression "Ensuring downward compatibility..." - -### N.B. : the following setting migration snippets are provided as *EXAMPLES* -### of what you may want to do in some cases (e.g. a setting was not defined on -### some legacy installs and you therefore want to initiaze stuff during upgrade) - -# If db_name doesn't exist, create it -# ynh_app_setting_set_default --key=db_name --value="$(ynh_sanitize_dbid --db_name=$app)" - -# If install_dir doesn't exist, create it -# ynh_app_setting_set_default --key=install_dir --value="/var/www/$app" - #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= + ynh_script_progression "Upgrading source files..." -### ynh_setup_source can wipe the destination dir if called with --full_replace. -### On upgrade, that is certainly what you want, to remove any old source file that -### does not exist in the new version of the software. -### You can list with --keep every file/directory to *not* wipe or overwrite, -### useful for configuration files, data directories, or plugins. -# Download, check integrity, uncompress and patch the source from manifest.toml -ynh_setup_source --dest_dir="$install_dir" --full_replace --keep=".env data" +ynh_setup_source --dest_dir="$install_dir" --full_replace --keep="database uploads minio" -### $install_dir will automatically be initialized with some decent -### permissions by default... however, you may need to recursively reapply -### ownership to all files such as after the ynh_setup_source step chown -R "$app:www-data" "$install_dir" -#================================================= -# UPDATE A CONFIG FILE -#================================================= -ynh_script_progression "Updating $app's configuration files..." - -### Same as during install -### -### The file will automatically be backed-up if it's found to be manually modified (because -### ynh_config_add keeps track of the file's checksum) - -ynh_config_add --template="run.sh" --destination="$install_dir/run.sh" - -# FIXME: this should be handled by the core in the future -### You may need to use chmod 600 instead of 400, -### for example if the app is expected to be able to modify its own config -chmod +x "$install_dir/run.sh" -chmod 400 "$install_dir/run.sh" -chown "$app:$app" "$install_dir/run.sh" - -### For more complex cases where you want to replace stuff using regexes, -### you shoud rely on ynh_replace (which is basically a wrapper for sed) -### When doing so, you also need to manually call ynh_store_file_checksum -### -### ynh_replace --match="match_string" --replace="replace_string" --file="$install_dir/some_config_file" -### ynh_store_file_checksum "$install_dir/some_config_file" #================================================= # REAPPLY SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression "Upgrading system configurations related to $app..." -### This should be a literal copypaste of what happened in the install's "System configuration" section +ynh_script_progression "Upgrading system configurations related to $app..." ynh_config_add_nginx ynh_config_add_systemd -yunohost service add "$app" --description="A modern and self-hosted take on file uploading services that can handle anything you throw at it thanks to it's robust and fast API, chunked uploads support and more." --log="/var/log/$app/$app.log" +yunohost service add "$app" --description="a beautiful and performant vault to save all your files in the cloud" --log="/var/log/$app/$app.log" -ynh_config_add_logrotate +ynh_script_progression "Installing $app..." + +pushd $install_dir + ynh_hide_warnings ynh_exec_as_app yarn install + ynh_hide_warnings ynh_exec_as_app yarn workspace @chibisafe/backend generate + ynh_hide_warnings ynh_exec_as_app yarn workspace @chibisafe/backend migrate + ynh_hide_warnings ynh_exec_as_app yarn build +popd #================================================= # START SYSTEMD SERVICE