[mod] backup script rewritten (inspired and adpated from example_ynh).

Currently neither backup nor restore are useful but are safe enough to
not break the upgrade script. That's what matters for now.
This commit is contained in:
pitchum 2018-05-09 10:31:46 +02:00
parent 76eacf55fa
commit 681fe2b58c
3 changed files with 70 additions and 4 deletions

View File

@ -6,6 +6,20 @@
pkg_dependencies="php5-fpm sipcalc dnsutils openvpn curl fake-hwclock"
# Experimental helpers
# Cf. https://github.com/YunoHost-Apps/Experimental_helpers/blob/72b0bc77c68d4a4a2bf4e95663dbc05e4a762a0a/ynh_read_manifest/ynh_read_manifest
read_json () {
sudo python3 -c "import sys, json;print(json.load(open('$1'))['$2'])"
}
read_manifest () {
if [ -f '../manifest.json' ] ; then
read_json '../manifest.json' "$1"
else
read_json '../settings/manifest.json' "$1"
fi
}
# Helper to start/stop/.. a systemd service from a yunohost context,
# *and* the systemd service itself needs to be able to run yunohost
# commands.

View File

@ -1,16 +1,61 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
if [ ! -e _common.sh ]; then
# Get the _common.sh file if it's not in the current directory
cp ../settings/scripts/_common.sh ./_common.sh
chmod a+rx _common.sh
fi
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
ynh_abort_if_errors # Stop script if an error is detected
#=================================================
# LOAD SETTINGS
#=================================================
backup_dir="${1}/apps/vpnclient"
mkdir -p "${backup_dir}/"
app=$YNH_APP_INSTANCE_NAME
sudo cp -a /etc/openvpn/keys/ "${backup_dir}/"
sudo cp -a /etc/openvpn/client.conf.tpl "${backup_dir}/"
final_path=$(ynh_app_setting_get $app final_path)
domain=$(ynh_app_setting_get $app domain)
#=================================================
# STANDARD BACKUP STEPS
#=================================================
# BACKUP THE APP MAIN DIR
#=================================================
ynh_backup "$final_path"
#=================================================
# BACKUP THE NGINX CONFIGURATION
#=================================================
ynh_backup "/etc/nginx/conf.d/$domain.d/${app}.conf"
#=================================================
# BACKUP THE PHP-FPM CONFIGURATION
#=================================================
ynh_backup "/etc/php5/fpm/pool.d/$app.conf"
#=================================================
# SPECIFIC BACKUP
#=================================================
# BACKUP SYSTEMD
#=================================================
ynh_backup "/etc/systemd/system/ynh-$app.service" # XXX maybe hard-coding the full name would be better
ynh_backup "/etc/systemd/system/ynh-$app-checker.service" # XXX maybe hard-coding the full name would be better
ynh_backup "/etc/systemd/system/ynh-$app-checker.timer" # XXX maybe hard-coding the full name would be better

View File

@ -38,6 +38,13 @@ if [ -f /etc/php5/fpm/pool.d/vpnadmin.conf ]; then
fi
test -d /var/www/vpnadmin && mv /var/www/vpnadmin /var/www/${app}
# Versions known to have a buggy backup script
buggy_versions="1.0.0 1.0.1 1.1.0"
curr_version=$(read_manifest version)
if echo $buggy_versions | grep -w $curr_version > /dev/null; then
echo "Your current version of ${app} is very old: ${curr_version}. Please ignore the next warning." >&2
fi
#=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#=================================================