From 058fafa32ba254587e5aa51f58fe990a1aacfba9 Mon Sep 17 00:00:00 2001 From: magikcypress Date: Mon, 6 Mar 2017 17:53:26 +0100 Subject: [PATCH] Ajout du fichier .fonctions --- scripts/.fonctions | 50 ++++++++++++++++++++++++++++++++++++++++++++++ scripts/install | 2 ++ scripts/remove | 2 ++ 3 files changed, 54 insertions(+) create mode 100644 scripts/.fonctions diff --git a/scripts/.fonctions b/scripts/.fonctions new file mode 100644 index 0000000..b6df593 --- /dev/null +++ b/scripts/.fonctions @@ -0,0 +1,50 @@ +#!/bin/bash + +ynh_version="2.4" + +YNH_VERSION () { # Renvoi le numéro de version de la moulinette Yunohost + ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) +} + +CHECK_VAR () { # Vérifie que la variable n'est pas vide. +# $1 = Variable à vérifier +# $2 = Texte à afficher en cas d'erreur + test -n "$1" || (echo "$2" >&2 && false) +} + +EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus. + trap '' ERR + echo -e "\e[91m \e[1m" # Shell in light red bold + echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" >&2 + + CLEAN_SETUP # Appel la fonction de nettoyage spécifique du script install. + + # Compense le bug de ssowat qui ne supprime pas l'entrée de l'app en cas d'erreur d'installation. + sudo sed -i "\@\"$domain$path/\":@d" /etc/ssowat/conf.json + + if [ "$ynh_version" = "2.2" ]; then + /bin/bash $script_dir/remove # Appel le script remove. En 2.2, ce comportement n'est pas automatique. + fi + + ynh_die +} + +TRAP_ON () { # Activate signal capture + trap EXIT_PROPERLY ERR # Capturing exit signals on error +} + +TRAP_OFF () { # Ignoring signal capture until TRAP_ON + # Pour une raison que j'ignore, la fonction TRAP_ON fonctionne très bien. + # Mais pas la fonction TRAP_OFF... + # Utiliser directement `trap '' ERR` dans le code pour l'utiliser, à la place de la fonction. + trap '' ERR # Ignoring exit signals +} + +CHECK_USER () { # Vérifie la validité de l'user admin +# $1 = Variable de l'user admin. + ynh_user_exists "$1" || (echo "Wrong admin" >&2 && false) +} + +CHECK_DOMAINPATH () { # Vérifie la disponibilité du path et du domaine. + sudo yunohost app checkurl $domain$path -a $app +} \ No newline at end of file diff --git a/scripts/install b/scripts/install index 918b2f6..2de8ecc 100644 --- a/scripts/install +++ b/scripts/install @@ -3,6 +3,8 @@ # Exit on command errors and treat unset variables as an error set -eu +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + TRAP_ON # Active trap pour arrêter le script si une erreur est détectée. domain=$YNH_APP_ARG_DOMAIN diff --git a/scripts/remove b/scripts/remove index e73cb80..d75da76 100644 --- a/scripts/remove +++ b/scripts/remove @@ -3,6 +3,8 @@ # Exit on command errors and treat unset variables as an error set -u +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + # Source app helpers source /usr/share/yunohost/helpers