mirror of
https://github.com/YunoHost-Apps/lionwiki-t2t_ynh.git
synced 2024-09-03 19:36:27 +02:00
106 lines
4.6 KiB
Bash
Executable file
106 lines
4.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
#=================================================
|
|
# GENERIC START
|
|
#=================================================
|
|
# IMPORT GENERIC HELPERS
|
|
#=================================================
|
|
|
|
source _common.sh
|
|
source /usr/share/yunohost/helpers
|
|
|
|
#=================================================
|
|
# ENSURE DOWNWARD COMPATIBILITY
|
|
#=================================================
|
|
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
|
|
|
|
# Settings were not backed up prior to packaging v2
|
|
if [[ -z "${password:-}" ]] || [[ -z "${color:-}" ]] || [[ -z "${wiki:-}" ]]; then
|
|
password=$( grep -oP '^\$PASSWORD = sha1\(\"\K.*(?=\"\);$)' "$install_dir/config.php")
|
|
wiki=$( grep -oP '^\$WIKI_TITLE = '"'\K.*(?=';)" "$install_dir/config.php")
|
|
color=$(grep -A1 'For YunoHost config' "$install_dir/templates/minimaxing/minimaxing.css" | grep -oP '^/\* @fg: #\K.*(?=;)'|| true)
|
|
|
|
if [[ -z "$password" ]] || [[ -z "$wiki" ]] || [[ -z "$color" ]]; then
|
|
yunohost_app="yunohost app"
|
|
ynh_die --message="Previous versions did not save settings. You need to manually set them before upgrading.
|
|
Here are the retrieved values: password='$password', wiki='$wiki', color='$color'
|
|
And the commands to set missing values:
|
|
$yunohost_app setting $app password -v 'YOUR PASSWORD'
|
|
$yunohost_app setting $app wiki -v 'YOUR WIKI NAME'
|
|
$yunohost_app setting $app color -v 'YOUR BASE COLOR'"
|
|
fi
|
|
ynh_app_setting_set --app="$app" --key=password --value="$password"
|
|
ynh_app_setting_set --app="$app" --key=wiki --value="$wiki"
|
|
ynh_app_setting_set --app="$app" --key=color --value="$color"
|
|
fi
|
|
|
|
#=================================================
|
|
# INITIALIZE AND STORE SETTINGS
|
|
#=================================================
|
|
|
|
password_sha1=$(python -c 'import hashlib; import sys; a=str(sys.argv[1]); print(hashlib.sha512(a.encode("UTF-8")).hexdigest())' "$password")
|
|
|
|
# Validate, fix and set default value for color
|
|
color="$(_validate_color)"
|
|
ynh_app_setting_set --app="$app" --key=color --value="$color"
|
|
|
|
#=================================================
|
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
|
#=================================================
|
|
ynh_script_progression --message="Upgrading source files..." --weight=3
|
|
|
|
# Download, check integrity, uncompress and patch the source from app.src
|
|
ynh_setup_source --dest_dir="$install_dir" --full_replace=1 --keep="config.php pheditor.php menu.php config.t2t var/pages/main.txt var/pages/todo.txt var/pages/sandbox.txt var/pages/links.txt var/pages/admin.txt"
|
|
|
|
|
|
chmod -R o-rwx "$install_dir"
|
|
chown -R "$app:www-data" "$install_dir"
|
|
|
|
#=================================================
|
|
# STORE THE CONFIG FILE CHECKSUM
|
|
#=================================================
|
|
ynh_script_progression --message="Updating configuration files..."
|
|
|
|
# Workaround for php code containing __FILE__ and __DIR__
|
|
file=__FILE__
|
|
dir=__DIR__
|
|
|
|
ynh_backup_if_checksum_is_different --file="$install_dir/config.php"
|
|
ynh_backup_if_checksum_is_different --file="$install_dir/pheditor.php"
|
|
|
|
# FIXME: is it required ?
|
|
ynh_delete_file_checksum --file="$install_dir/config.php"
|
|
ynh_delete_file_checksum --file="$install_dir/pheditor.php"
|
|
|
|
ynh_add_config --template="config.php" --destination="$install_dir/config.php"
|
|
ynh_add_config --template="pheditor.php" --destination="$install_dir/pheditor.php"
|
|
|
|
mkdir -p "$install_dir/templates/minimaxing/"
|
|
ynh_delete_file_checksum --file="$install_dir/templates/minimaxing/minimaxing.less"
|
|
ynh_delete_file_checksum --file="$install_dir/templates/minimaxing/minimaxing.css"
|
|
ynh_add_config --template="minimaxing.less" --destination="$install_dir/templates/minimaxing/minimaxing.less"
|
|
ynh_add_config --template="minimaxing.css" --destination="$install_dir/templates/minimaxing/minimaxing.css"
|
|
|
|
mkdir -p "$install_dir/templates/mimoza/"
|
|
ynh_delete_file_checksum --file="$install_dir/templates/mimoza/mimoza.css"
|
|
ynh_add_config --template="mimoza.css" --destination="$install_dir/templates/mimoza/mimoza.css"
|
|
|
|
ynh_store_file_checksum --file="$install_dir/config.t2t"
|
|
ynh_store_file_checksum --file="$install_dir/menu.php"
|
|
|
|
#=================================================
|
|
# REAPPLY SYSTEM CONFIGURATIONS
|
|
#=================================================
|
|
ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1
|
|
|
|
# Create a dedicated PHP-FPM config
|
|
ynh_add_fpm_config
|
|
|
|
# Create a dedicated NGINX config
|
|
ynh_add_nginx_config
|
|
|
|
#=================================================
|
|
# END OF SCRIPT
|
|
#=================================================
|
|
|
|
ynh_script_progression --message="Upgrade of $app completed" --last
|