From c75fc4cf7e7f30df6bf05de400bf076040a4107c Mon Sep 17 00:00:00 2001 From: polytan02 Date: Fri, 24 Feb 2017 23:49:07 +0000 Subject: [PATCH] Cleaning --- scripts/backup | 13 ---------- scripts/remove | 64 ++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/scripts/backup b/scripts/backup index 97d1221..82ec46b 100755 --- a/scripts/backup +++ b/scripts/backup @@ -1,23 +1,10 @@ #!/bin/bash -# Exit on command errors and treat unset variables as an error -#set -eu - -#TRAP_ON () { # Activate signal capture -# trap EXIT_PROPERLY ERR # Capturing ex it signals on error -#} - -# Active trap pour arrêter le script si une erreur est détectée. -#TRAP_ON - -# See comments in install script app=$YNH_APP_INSTANCE_NAME # Source YunoHost helpers source /usr/share/yunohost/helpers -path=$(ynh_app_setting_get $app path) -domain=$(ynh_app_setting_get $app domain) final_path=$(ynh_app_setting_get $app final_path) statedir=$(ynh_app_setting_get $app statedir) final_logpath=$(ynh_app_setting_get $app final_logpath) diff --git a/scripts/remove b/scripts/remove index abf212d..68cc388 100755 --- a/scripts/remove +++ b/scripts/remove @@ -3,17 +3,67 @@ # Source app helpers source /usr/share/yunohost/helpers +SECURE_REMOVE () { # Suppression de dossier avec vérification des variables + chaine="$1" # L'argument doit être donné entre quotes simple '', pour éviter d'interpréter les variables. + no_var=0 + while (echo "$chaine" | grep -q '\$') # Boucle tant qu'il y a des $ dans la chaine + do + no_var=1 + global_var=$(echo "$chaine" | cut -d '$' -f 2) # Isole la première variable trouvée. + only_var=\$$(expr "$global_var" : '\([A-Za-z0-9_]*\)') # Isole complètement la variable en ajoutant le $ au début et en gardant uniquement le nom de la variable. Se débarrasse$ + real_var=$(eval "echo ${only_var}") # `eval "echo ${var}` permet d'interpréter une variable contenue dans une variable. + if test -z "$real_var" || [ "$real_var" = "/" ]; then + echo "Variable $only_var is empty, suppression of $chaine cancelled." >&2 + return 1 + fi + chaine=$(echo "$chaine" | sed "s@$only_var@$real_var@") # remplace la variable par sa valeur dans la chaine. + done + if [ "$no_var" -eq 1 ] + then + if [ -e "$chaine" ]; then + echo "Delete directory $chaine" + sudo rm -r "$chaine" + fi + return 0 + else + echo "No detected variable." >&2 + return 1 + fi +} + +REMOVE_NGINX_CONF () { # Suppression de la configuration nginx + if [ -e "/etc/nginx/conf.d/$domain.d/$app.conf" ]; then # Delete nginx config + echo "Delete nginx config" + sudo rm "/etc/nginx/conf.d/$domain.d/$app.conf" + fi +} + +REMOVE_FPM_CONF () { # Suppression de la configuration du pool php-fpm + if [ -e "/etc/php5/fpm/pool.d/$app.conf" ]; then # Delete fpm config + echo "Delete fpm config" + sudo rm "/etc/php5/fpm/pool.d/$app.conf" + fi +} + +REMOVE_LOGROTATE_CONF () { # Suppression de la configuration de logrotate + if [ -e "/etc/logrotate.d/$app" ]; then + echo "Delete logrotate config" + sudo rm "/etc/logrotate.d/$app" + fi +} + # We retrieve app parameters app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get $app domain) +domain=$(ynh_app_setting_get "$app" domain) # Cleaning -sudo rm -rf /var/www/$app -sudo rm -rf /home/yunohost.app/$app -sudo rm -rf /var/log/$app -sudo rm -f /etc/nginx/conf.d/$domain.d/$app.conf -sudo rm -f /etc/php5/fpm/pool.d/$app.conf -sudo rm -f /etc/logrotate.d/$app +SECURE_REMOVE '/var/www/$app' +SECURE_REMOVE '/home/yunohost.app/$app' +SECURE_REMOVE '/var/log/$app' + +REMOVE_NGINX_CONF +REMOVE_FPM_CONF +REMOVE_LOGROTATE_CONF # Remove app dependencies if ynh_package_is_installed "z-push-deps"; then