From 4e996121f8c06c947a362d7504ebc645bbd8bb69 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 4 Jun 2016 23:09:25 +0200 Subject: [PATCH 01/13] =?UTF-8?q?source=20=C3=A0=20la=20place=20de=20.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/install | 4 ++-- scripts/remove | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/install b/scripts/install index 542b30e..094d14f 100644 --- a/scripts/install +++ b/scripts/install @@ -15,7 +15,7 @@ then app=$YNH_APP_INSTANCE_NAME # Source app helpers - . /usr/share/yunohost/helpers + source /usr/share/yunohost/helpers else domain=$1 path=$2 @@ -30,7 +30,7 @@ fi # Delete files and db if exit with an error EXIT_PROPERLY () { - trap '' ERR + 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!!" diff --git a/scripts/remove b/scripts/remove index 105333b..9b28b1d 100644 --- a/scripts/remove +++ b/scripts/remove @@ -6,7 +6,7 @@ if [ $ynh_version = "2.4" ]; then app=$YNH_APP_INSTANCE_NAME # Source app helpers - . /usr/share/yunohost/helpers + source /usr/share/yunohost/helpers else app=leed MYSQL_ROOT_PWD_FILE="/etc/yunohost/mysql" From 06ae5d3369c69960828f8f41c8bfbc381fadb979 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 4 Jun 2016 23:34:23 +0200 Subject: [PATCH 02/13] force_stop silencieux et check user verbeux --- scripts/install | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/scripts/install b/scripts/install index 094d14f..c2f08d1 100644 --- a/scripts/install +++ b/scripts/install @@ -57,22 +57,15 @@ TRAP_ON # Vérifie la validité de l'user admin -sudo yunohost user list --json | grep -q "\"username\": \"$admin\"" -if [[ ! $? -eq 0 ]]; then - echo "Wrong admin" - touch /force_stop -fi +sudo yunohost user list --json | grep -q "\"username\": \"$admin\"" || (echo "Wrong admin" && touch /force_stop 2> /dev/null) # Vérifie la disponibilité du path et du domaine. sudo yunohost app checkurl $domain$path -a $app -if [[ ! $? -eq 0 ]]; then - touch /force_stop -fi # Vérifie que le mot de passe n'est pas vide. if [[ -z $user_pwd ]]; then echo "Mot de passe incorrect" - touch /force_stop + touch /force_stop 2> /dev/null fi # Vérifie que le dossier de destination n'est pas déjà utilisé. @@ -80,7 +73,7 @@ final_path=/var/www/$app if [ -e "$final_path" ] then echo "This path already contains a folder" - touch /force_stop + touch /force_stop 2> /dev/null fi # Vérifie la présence du / en début de path From 8472c7db47e195f76addb94e3d7847bc9f5f4ddd Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 4 Jun 2016 23:56:27 +0200 Subject: [PATCH 03/13] Checks variables are not empty --- scripts/install | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/install b/scripts/install index c2f08d1..02168d0 100644 --- a/scripts/install +++ b/scripts/install @@ -27,6 +27,15 @@ else app=leed fi +# Checks variables are not empty +test -z "$domain" && (echo "domain not set" && touch /force_stop) +test -z "$path" && (echo "path not set" && touch /force_stop) +test -z "$admin" && (echo "admin not set" && touch /force_stop) +test -z "$user_pwd" && (echo "user_pwd not set" && touch /force_stop) +test -z "$language" && (echo "language not set" && touch /force_stop) +test -z "$market" && (echo "market not set" && touch /force_stop) +test -z "$is_public" && (echo "is_public not set" && touch /force_stop) + # Delete files and db if exit with an error EXIT_PROPERLY () { From eab74274918a320be1f54fff398ed43fb6724f6a Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sun, 5 Jun 2016 18:49:54 +0200 Subject: [PATCH 04/13] =?UTF-8?q?source=20en=20t=C3=A9l=C3=A9chargement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/install | 8 ++++++-- scripts/upgrade | 8 ++++++-- sources/leed.tar.gz | Bin 213044 -> 0 bytes sources/source_dir | 1 + sources/source_md5 | 1 + sources/source_url | 1 + 6 files changed, 15 insertions(+), 4 deletions(-) delete mode 100644 sources/leed.tar.gz create mode 100644 sources/source_dir create mode 100644 sources/source_md5 create mode 100644 sources/source_url diff --git a/scripts/install b/scripts/install index 02168d0..43b446e 100644 --- a/scripts/install +++ b/scripts/install @@ -113,10 +113,14 @@ sudo yunohost app setting $app mysqlpwd -v $db_pwd sudo mkdir "$final_path" sudo yunohost app setting $app final_path -v $final_path +# Télécharge la source +wget -nv --show-progress -i ../sources/source_url -O leed.tar.gz +# Vérifie la somme de contrôle de la source téléchargée. +md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) # Décompresse la source -tar -x -f ../sources/leed.tar.gz +tar -x -f leed.tar.gz # Copie les fichiers sources -sudo cp -a leed/. "$final_path" +sudo cp -a $(cat ../sources/source_dir)/. "$final_path" # Copie les fichiers additionnels ou modifiés. # sudo cp -a ../sources/ajouts/. "$final_path" # Et copie le fichier de config nginx diff --git a/scripts/upgrade b/scripts/upgrade index 1905f9b..77d828d 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -13,10 +13,14 @@ admin=$(sudo yunohost app setting $app admin) is_public=$(sudo yunohost app setting $app is_public) +# Télécharge la source +wget -nv --show-progress -i ../sources/source_url -O leed.tar.gz +# Vérifie la somme de contrôle de la source téléchargée. +md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) # Décompresse la source -tar -x -f ../sources/leed.tar.gz +tar -x -f leed.tar.gz # Copie les fichiers sources -sudo cp -a leed/. "$final_path" +sudo cp -a $(cat ../sources/source_dir)/. "$final_path" # Copie les fichiers additionnels ou modifiés. # sudo cp -a ../sources/ajouts/. "$final_path" # Et copie le fichier de config nginx diff --git a/sources/leed.tar.gz b/sources/leed.tar.gz deleted file mode 100644 index cbe3490ee8b55fd9a67e9435da43a8d1f00322df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213044 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 diff --git a/sources/source_dir b/sources/source_dir new file mode 100644 index 0000000..b4085d3 --- /dev/null +++ b/sources/source_dir @@ -0,0 +1 @@ +Leed-1.7 \ No newline at end of file diff --git a/sources/source_md5 b/sources/source_md5 new file mode 100644 index 0000000..8fd724b --- /dev/null +++ b/sources/source_md5 @@ -0,0 +1 @@ +f54a18cef71704be85e7b963cff19357 leed.tar.gz \ No newline at end of file diff --git a/sources/source_url b/sources/source_url new file mode 100644 index 0000000..a8cbbff --- /dev/null +++ b/sources/source_url @@ -0,0 +1 @@ +https://github.com/ldleman/Leed/archive/v1.7.tar.gz \ No newline at end of file From 76de8f4a846ead680f53f82f96f84a2134ab6fc2 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 15 Jun 2016 23:56:35 +0200 Subject: [PATCH 05/13] Factorisation du code --- conf/nginx.conf | 2 +- scripts/.fonctions | 178 +++++++++++++++++++++++++++++++++++++++++++++ scripts/backup | 4 +- scripts/install | 115 ++++++----------------------- scripts/remove | 41 ++--------- scripts/restore | 4 +- scripts/upgrade | 18 ++--- 7 files changed, 221 insertions(+), 141 deletions(-) create mode 100755 scripts/.fonctions diff --git a/conf/nginx.conf b/conf/nginx.conf index c484a37..506ea33 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,5 +1,5 @@ location __PATH__ { - alias __FINALPATH__ ; + alias __FINALPATH__/ ; if ($scheme = http) { rewrite ^ https://$server_name$request_uri? permanent; } diff --git a/scripts/.fonctions b/scripts/.fonctions new file mode 100755 index 0000000..7569aae --- /dev/null +++ b/scripts/.fonctions @@ -0,0 +1,178 @@ +#!/bin/bash + +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" && 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!!" + + CLEAN_SETUP # Appel la fonction de nettoyage spécifique du script install. + + 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 + + exit 1 +} + +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. + sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" && false) +} + +CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin. + if [ "${path:0:1}" != "/" ]; then # Si le premier caractère n'est pas un / + path="/$path" # Ajoute un / en début de path + fi + if [ "${path:${#path}-1}" == "/" ] && [ ${#path} -gt 1 ]; then # Si le dernier caractère est un / et que ce n'est pas le seul caractère. + path="${path:0:${#path}-1}" # Supprime le dernier caractère + fi +} + +CHECK_DOMAINPATH () { # Vérifie la disponibilité du path et du domaine. + sudo yunohost app checkurl $domain$path -a $app +} + +CHECK_FINALPATH () { # Vérifie que le dossier de destination n'est pas déjà utilisé. + final_path=/var/www/$app + if [ -e "$final_path" ] + then + echo "This path already contains a folder" + false + fi +} + +GENERATE_DB () { # Créer une base de données et un utilisateur dédié au nom de l'app. + # Génère un mot de passe aléatoire. + db_pwd=$(head -n20 /dev/urandom | tr -c -d 'A-Za-z0-9' | head -c20) + CHECK_VAR "$db_pwd" "db_pwd empty" + # Utilise '$app' comme nom d'utilisateur et de base de donnée + db_user=$app + # Initialise la base de donnée et stocke le mot de passe mysql. + ynh_mysql_create_db $db_user $db_user $db_pwd + sudo yunohost app setting $app mysqlpwd -v $db_pwd +} + +SETUP_SOURCE () { # Télécharge la source, décompresse et copie dans $final_path +# $1 = Nom de l'archive téléchargée. + wget -nv --show-progress -i ../sources/source_url -O $1 + # Vérifie la somme de contrôle de la source téléchargée. + md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) + # Décompresse la source + if [ "$(echo ${1##*.})" == "gz" ]; then + tar -x -f $1 + elif [ "$(echo ${1##*.})" == "zip" ]; then + unzip -q $1 + else + false # Format d'archive non pris en charge. + fi + # Copie les fichiers sources + sudo cp -a $(cat ../sources/source_dir)/. "$final_path" + # Copie les fichiers additionnels ou modifiés. + sudo cp -a ../sources/ajouts/. "$final_path" +} + +POOL_FPM () { # Créer le fichier de configuration du pool php-fpm et le configure. + sed -i "s@__NAMETOCHANGE__@$app@g" ../conf/php-fpm.conf + sed -i "s@__FINALPATH__@$final_path@g" ../conf/php-fpm.conf + finalphpconf=/etc/php5/fpm/pool.d/$app.conf + sudo cp ../conf/php-fpm.conf $finalphpconf + sudo chown root: $finalphpconf + finalphpini=/etc/php5/fpm/conf.d/20-$app.ini + sudo cp ../conf/php-fpm.ini $finalphpini + sudo chown root: $finalphpini + sudo service php5-fpm reload +} + +STORE_MD5_CONFIG () { # Enregistre la somme de contrôle du fichier de config +# $1 = Nom du fichier de conf pour le stockage dans settings.yml +# $2 = Nom complet et chemin du fichier de conf. + sudo yunohost app setting $app $1_file_md5 -v $(md5sum "$2" | cut -d' ' -f1) +} + +CHECK_MD5_CONFIG () { # Créé un backup du fichier de config si il a été modifié. +# $1 = Nom du fichier de conf pour le stockage dans settings.yml +# $2 = Nom complet et chemin du fichier de conf. + if [ "$(sudo yunohost app setting $app $1_file_md5)" != $(md5sum "$2" | cut -d' ' -f1) ]; then + sudo cp -a "$2" "$2.backup.$(date '+%d.%m.%y_%Hh%M,%Ss')" # Si le fichier de config a été modifié, créer un backup. + fi +} + +FIND_PORT () { # Cherche un port libre. +# $1 = Numéro de port pour débuter la recherche. + port=$1 + while ! sudo yunohost app checkport $port ; do + port=$((port+1)) + done + CHECK_VAR "$port" "port empty" +} + + +### REMOVE SCRIPT + +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" + sudo service nginx reload + 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 + if [ -e "/etc/php5/fpm/conf.d/20-$app.ini" ]; then # Delete php config + echo "Delete php config" + sudo rm "/etc/php5/fpm/conf.d/20-$app.ini" + fi + sudo service php5-fpm reload +} + +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 +} + +REMOVE_APP_DIR () { # Suppression du dossier de l'application + if [ test -n "$app" ] + then # Supprime le dossier seulement si $app n'est pas vide. + if [ -e "/var/www/$app" ]; then # Delete final_path + echo "Delete app dir" + sudo rm -r "/var/www/$app" + fi + fi +} + +REMOVE_BDD () { # Suppression de la base de donnée et de l'utilisateur associé. + # Utilise '$app' comme nom d'utilisateur et de base de donnée + db_user=$app + if mysqlshow -u root -p$(sudo cat $MYSQL_ROOT_PWD_FILE) | grep -q "^| $db_user"; then + echo "Delete db" + ynh_mysql_drop_db $db_user + ynh_mysql_drop_user $db_user + fi +} diff --git a/scripts/backup b/scripts/backup index 5e72260..0bfeb28 100644 --- a/scripts/backup +++ b/scripts/backup @@ -1,7 +1,9 @@ #!/bin/bash +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + # Récupère les infos de l'application. -version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) +YNH_VERSION # Récupère le numéro de version de Yunohost. if [ $version = "2.4" ]; then app=$YNH_APP_INSTANCE_NAME else diff --git a/scripts/install b/scripts/install index 43b446e..101e5fd 100644 --- a/scripts/install +++ b/scripts/install @@ -1,6 +1,16 @@ #!/bin/bash -ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + +YNH_VERSION # Récupère le numéro de version de Yunohost. + +CLEAN_SETUP () { +# Nettoyage des résidus d'installation non pris en charge par le script remove. + # Clean hosts + sudo sed -i '/#leed/d' /etc/hosts +} +TRAP_ON # Active trap pour arrêter le script si une erreur est détectée. + # Retrieve arguments if [ $ynh_version = "2.4" ] then @@ -27,68 +37,16 @@ else app=leed fi -# Checks variables are not empty -test -z "$domain" && (echo "domain not set" && touch /force_stop) -test -z "$path" && (echo "path not set" && touch /force_stop) -test -z "$admin" && (echo "admin not set" && touch /force_stop) -test -z "$user_pwd" && (echo "user_pwd not set" && touch /force_stop) -test -z "$language" && (echo "language not set" && touch /force_stop) -test -z "$market" && (echo "market not set" && touch /force_stop) -test -z "$is_public" && (echo "is_public not set" && touch /force_stop) +# Vérifie que les variables ne sont pas vides. +CHECK_VAR "$app" "app name not set" -# Delete files and db if exit with an error -EXIT_PROPERLY () { - 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!!" +CHECK_USER "$admin" # Vérifie la validité de l'user admin - echo -e "\e[22m" # Remove bold +CHECK_PATH # Vérifie et corrige la syntaxe du path. +CHECK_DOMAINPATH # Vérifie la disponibilité du path et du domaine. - # Clean hosts - sudo sed -i '/#leed/d' /etc/hosts - - if [ $ynh_version = "2.2" ]; then - /bin/bash ./remove # Appel le script remove. En 2.2, ce comportement n'est pas automatique. - fi - exit 1 -} -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 -} -TRAP_ON - - -# Vérifie la validité de l'user admin -sudo yunohost user list --json | grep -q "\"username\": \"$admin\"" || (echo "Wrong admin" && touch /force_stop 2> /dev/null) - -# Vérifie la disponibilité du path et du domaine. -sudo yunohost app checkurl $domain$path -a $app - -# Vérifie que le mot de passe n'est pas vide. -if [[ -z $user_pwd ]]; then - echo "Mot de passe incorrect" - touch /force_stop 2> /dev/null -fi - -# Vérifie que le dossier de destination n'est pas déjà utilisé. -final_path=/var/www/$app -if [ -e "$final_path" ] -then - echo "This path already contains a folder" - touch /force_stop 2> /dev/null -fi - -# Vérifie la présence du / en début de path -if [ $(echo $path | cut -c1) != "/" ]; then - path="/$path" -fi +CHECK_FINALPATH # Vérifie que le dossier de destination n'est pas déjà utilisé. # Enregistre les infos dans la config YunoHost @@ -96,33 +54,15 @@ sudo yunohost app setting $app admin -v $admin sudo yunohost app setting $app language -v $language sudo yunohost app setting $app domain -v $domain -# Génère un mot de passe aléatoire. -db_pwd=$(head -n20 /dev/urandom | tr -c -d 'A-Za-z0-9' | head -c20) -# Utilise '$app' comme nom d'utilisateur et de base de donnée -db_user=$app -# Initialise la base de donnée et stocke le mot de passe mysql. -if [ $ynh_version = "2.4" ]; then - ynh_mysql_create_db $db_user $db_user $db_pwd -else - sudo yunohost app initdb $db_user -p $db_pwd -fi -sudo yunohost app setting $app mysqlpwd -v $db_pwd +GENERATE_DB # Créer une base de données et un utilisateur dédié au nom de l'app. # Crée le repertoire de destination et stocke son emplacement. sudo mkdir "$final_path" sudo yunohost app setting $app final_path -v $final_path -# Télécharge la source -wget -nv --show-progress -i ../sources/source_url -O leed.tar.gz -# Vérifie la somme de contrôle de la source téléchargée. -md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) -# Décompresse la source -tar -x -f leed.tar.gz -# Copie les fichiers sources -sudo cp -a $(cat ../sources/source_dir)/. "$final_path" -# Copie les fichiers additionnels ou modifiés. -# sudo cp -a ../sources/ajouts/. "$final_path" +SETUP_SOURCE "leed.tar.gz" # Télécharge la source, décompresse et copie dans $final_path + # Et copie le fichier de config nginx sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf @@ -132,16 +72,7 @@ sudo sed -i "s@__PATH__@$path@g" /etc/nginx/conf.d/$domain.d/$app.conf sudo sed -i "s@__FINALPATH__@$final_path@g" /etc/nginx/conf.d/$domain.d/$app.conf sudo sed -i "s@__NAMETOCHANGE__@$app@g" /etc/nginx/conf.d/$domain.d/$app.conf -# Créer le fichier de configuration du pool php-fpm et le configure. -sed -i "s@__NAMETOCHANGE__@$app@g" ../conf/php-fpm.conf -sed -i "s@__FINALPATH__@$final_path@g" ../conf/php-fpm.conf -finalphpconf=/etc/php5/fpm/pool.d/$app.conf -sudo cp ../conf/php-fpm.conf $finalphpconf -sudo chown root: $finalphpconf -finalphpini=/etc/php5/fpm/conf.d/20-$app.ini -sudo cp ../conf/php-fpm.ini $finalphpini -sudo chown root: $finalphpini -sudo service php5-fpm reload +POOL_FPM # Créer le fichier de configuration du pool php-fpm et le configure. # Set right permissions for curl install @@ -183,6 +114,7 @@ sudo chown -R www-data $final_path/cache $final_path/plugins # Récupération du code de synchronisation code_sync=$(mysql -h localhost -u $db_user -p$db_pwd -s $db_user -e 'SELECT value FROM leed_configuration WHERE `key`="synchronisationCode"' | sed -n 1p) +CHECK_VAR "$code_sync" "code_sync empty" # Mise en place du cron pour la synchronisation sed -i "s@__ADMIN__@$admin@g" ../conf/cron_leed @@ -204,6 +136,3 @@ fi # Clean hosts sudo sed -i '/#leed/d' /etc/hosts - -# Recharge la configuration php5-fpm -# sudo service php5-fpm reload diff --git a/scripts/remove b/scripts/remove index 9b28b1d..5869baf 100644 --- a/scripts/remove +++ b/scripts/remove @@ -1,7 +1,9 @@ #!/bin/bash +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + # Récupère les infos de l'application. -ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) +YNH_VERSION # Récupère le numéro de version de Yunohost. if [ $ynh_version = "2.4" ]; then app=$YNH_APP_INSTANCE_NAME @@ -13,42 +15,13 @@ else fi domain=$(sudo yunohost app setting $app domain) -# Suppression de la base de donnée et de l'utilisateur associé. -# Utilise '$app' comme nom d'utilisateur et de base de donnée -db_user=$app -if mysqlshow -u root -p$(sudo cat $MYSQL_ROOT_PWD_FILE) | grep -q "^| $db_user"; then - echo "Delete db" - if [ $ynh_version = "2.4" ]; then - ynh_mysql_drop_db $db_user - ynh_mysql_drop_user $db_user - else - mysql -u root -p$(sudo cat $MYSQL_ROOT_PWD_FILE) -e "DROP DATABASE $db_user ; DROP USER $db_user@localhost ;" - fi -fi +REMOVE_BDD # Suppression de la base de donnée et de l'utilisateur associé. -# Suppression du dossier de l'application -if [ -e "/var/www/$app" ]; then # Delete final_path - echo "Delete app dir" - sudo rm -r "/var/www/$app" -fi +REMOVE_APP_DIR # Suppression du dossier de l'application -# 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" - sudo service nginx reload -fi +REMOVE_NGINX_CONF # Suppression de la configuration nginx -# 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 -if [ -e "/etc/php5/fpm/conf.d/20-$app.ini" ]; then # Delete php config - echo "Delete php config" - sudo rm "/etc/php5/fpm/conf.d/20-$app.ini" -fi -sudo service php5-fpm reload +REMOVE_FPM_CONF # Suppression de la configuration du pool php-fpm # Retirer le cron if [ -e "/etc/cron.d/$app" ]; then diff --git a/scripts/restore b/scripts/restore index 2e5e2b6..297dfe7 100644 --- a/scripts/restore +++ b/scripts/restore @@ -1,7 +1,9 @@ #!/bin/bash +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + # Récupère les infos de l'application. -version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) +YNH_VERSION # Récupère le numéro de version de Yunohost. if [ $version = "2.4" ]; then app=$YNH_APP_INSTANCE_NAME else diff --git a/scripts/upgrade b/scripts/upgrade index 77d828d..2b4e781 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -1,7 +1,9 @@ #!/bin/bash +source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script + # Récupère les infos de l'application. -version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2) +YNH_VERSION # Récupère le numéro de version de Yunohost. if [ $version = "2.4" ]; then app=$YNH_APP_INSTANCE_NAME else @@ -13,16 +15,10 @@ admin=$(sudo yunohost app setting $app admin) is_public=$(sudo yunohost app setting $app is_public) -# Télécharge la source -wget -nv --show-progress -i ../sources/source_url -O leed.tar.gz -# Vérifie la somme de contrôle de la source téléchargée. -md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) -# Décompresse la source -tar -x -f leed.tar.gz -# Copie les fichiers sources -sudo cp -a $(cat ../sources/source_dir)/. "$final_path" -# Copie les fichiers additionnels ou modifiés. -# sudo cp -a ../sources/ajouts/. "$final_path" +CHECK_PATH # Vérifie et corrige la syntaxe du path. + +SETUP_SOURCE "leed.tar.gz" # Télécharge la source, décompresse et copie dans $final_path + # Et copie le fichier de config nginx sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf From 24a9057d66091936d41b5d1859966018d3072bf4 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sun, 19 Jun 2016 22:29:08 +0200 Subject: [PATCH 06/13] Dossier ajouts manquant --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 746f6a4..0496909 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,6 @@ Leed est un agrégateur de flux RSS/ATOM dit KISS : minimaliste, simple, léger http://leed.idleman.fr/ **Mise à jour du package:** -sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/leed_ynh +sudo yunohost app upgrade leed -u https://github.com/YunoHost-Apps/leed_ynh **Multi-utilisateur:** Non, une instance par utilisateur. From 0ff06e767bda9ed205f687057863317096830dce Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sun, 19 Jun 2016 22:30:53 +0200 Subject: [PATCH 07/13] Dossier ajouts manquant --- sources/ajouts/.gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 sources/ajouts/.gitignore diff --git a/sources/ajouts/.gitignore b/sources/ajouts/.gitignore new file mode 100644 index 0000000..f0ff6f7 --- /dev/null +++ b/sources/ajouts/.gitignore @@ -0,0 +1,3 @@ +*.swp +*~ +Notes From 93981c628722ececb00e007e2a2706ab47a21ed1 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Mon, 20 Jun 2016 00:14:40 +0200 Subject: [PATCH 08/13] =?UTF-8?q?Mise=20=C3=A0=20jour=20.fonctions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 2 +- manifest2.2.json | 2 +- scripts/.fonctions | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 4f0a880..52813e3 100644 --- a/manifest.json +++ b/manifest.json @@ -74,7 +74,7 @@ "fr": "Voulez-vous activer le Leed Market ?" }, "choices": ["Yes", "No"], - "default": "No" + "default": "Yes" }, { "name": "is_public", diff --git a/manifest2.2.json b/manifest2.2.json index 3bd7897..acaa060 100644 --- a/manifest2.2.json +++ b/manifest2.2.json @@ -71,7 +71,7 @@ "fr": "Voulez-vous activer le Leed Market ?" }, "choices": ["Yes", "No"], - "default": "No" + "default": "Yes" }, { "name": "is_public", diff --git a/scripts/.fonctions b/scripts/.fonctions index 7569aae..0de5519 100755 --- a/scripts/.fonctions +++ b/scripts/.fonctions @@ -17,6 +17,9 @@ EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les 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 @@ -158,7 +161,7 @@ REMOVE_LOGROTATE_CONF () { # Suppression de la configuration de logrotate } REMOVE_APP_DIR () { # Suppression du dossier de l'application - if [ test -n "$app" ] + if test -n "$app" then # Supprime le dossier seulement si $app n'est pas vide. if [ -e "/var/www/$app" ]; then # Delete final_path echo "Delete app dir" From 0d9cf153f30c7c7dc86060290449c76144e4c026 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 25 Jun 2016 13:08:00 +0200 Subject: [PATCH 09/13] Upgrade leed 1.7 --- scripts/.fonctions | 6 +- scripts/install | 6 +- scripts/remove | 2 +- scripts/upgrade | 27 +++++--- sources/ajouts/Update.class.php | 113 ++++++++++++++++++++++++++++++++ 5 files changed, 140 insertions(+), 14 deletions(-) create mode 100644 sources/ajouts/Update.class.php diff --git a/scripts/.fonctions b/scripts/.fonctions index 0de5519..cfb9d49 100755 --- a/scripts/.fonctions +++ b/scripts/.fonctions @@ -66,11 +66,12 @@ CHECK_FINALPATH () { # Vérifie que le dossier de destination n'est pas déjà u } GENERATE_DB () { # Créer une base de données et un utilisateur dédié au nom de l'app. +# $1 = Nom de la base de donnée # Génère un mot de passe aléatoire. + db_user=$1 db_pwd=$(head -n20 /dev/urandom | tr -c -d 'A-Za-z0-9' | head -c20) CHECK_VAR "$db_pwd" "db_pwd empty" # Utilise '$app' comme nom d'utilisateur et de base de donnée - db_user=$app # Initialise la base de donnée et stocke le mot de passe mysql. ynh_mysql_create_db $db_user $db_user $db_pwd sudo yunohost app setting $app mysqlpwd -v $db_pwd @@ -171,8 +172,9 @@ REMOVE_APP_DIR () { # Suppression du dossier de l'application } REMOVE_BDD () { # Suppression de la base de donnée et de l'utilisateur associé. +# $1 = Nom de la base de donnée # Utilise '$app' comme nom d'utilisateur et de base de donnée - db_user=$app + db_user=$1 if mysqlshow -u root -p$(sudo cat $MYSQL_ROOT_PWD_FILE) | grep -q "^| $db_user"; then echo "Delete db" ynh_mysql_drop_db $db_user diff --git a/scripts/install b/scripts/install index 101e5fd..803b356 100644 --- a/scripts/install +++ b/scripts/install @@ -54,7 +54,7 @@ sudo yunohost app setting $app admin -v $admin sudo yunohost app setting $app language -v $language sudo yunohost app setting $app domain -v $domain -GENERATE_DB # Créer une base de données et un utilisateur dédié au nom de l'app. +GENERATE_DB $app # Créer une base de données et un utilisateur dédié au nom de l'app. # Crée le repertoire de destination et stocke son emplacement. @@ -107,9 +107,9 @@ sudo find $final_path -type d | xargs sudo chmod 755 # Les fichiers appartiennent à root sudo chown -R root: $final_path -# www-data doit avoir les droits d'écriture dans plugins et cache +# www-data doit avoir les droits d'écriture dans plugins, cache et updates sudo mkdir $final_path/cache -sudo chown -R www-data $final_path/cache $final_path/plugins +sudo chown -R www-data $final_path/cache $final_path/plugins $final_path/updates # Récupération du code de synchronisation diff --git a/scripts/remove b/scripts/remove index 5869baf..ccd2794 100644 --- a/scripts/remove +++ b/scripts/remove @@ -15,7 +15,7 @@ else fi domain=$(sudo yunohost app setting $app domain) -REMOVE_BDD # Suppression de la base de donnée et de l'utilisateur associé. +REMOVE_BDD $app # Suppression de la base de donnée et de l'utilisateur associé. REMOVE_APP_DIR # Suppression du dossier de l'application diff --git a/scripts/upgrade b/scripts/upgrade index 2b4e781..c6833e5 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -4,7 +4,7 @@ source .fonctions # Charge les fonctions génériques habituellement utilisées # Récupère les infos de l'application. YNH_VERSION # Récupère le numéro de version de Yunohost. -if [ $version = "2.4" ]; then +if [ "$version" = "2.4" ]; then app=$YNH_APP_INSTANCE_NAME else app=leed @@ -13,6 +13,8 @@ domain=$(sudo yunohost app setting $app domain) path=$(sudo yunohost app setting $app path) admin=$(sudo yunohost app setting $app admin) is_public=$(sudo yunohost app setting $app is_public) +final_path=$(sudo yunohost app setting $app final_path) +db_pwd=$(sudo yunohost app setting $app mysqlpwd) CHECK_PATH # Vérifie et corrige la syntaxe du path. @@ -28,7 +30,7 @@ sudo chown -R www-data: $final_path # Change variables in Leed configuration sudo sed -i "s@__PATH__@$path@g" /etc/nginx/conf.d/$domain.d/$app.conf sudo sed -i "s@__FINALPATH__@$final_path@g" /etc/nginx/conf.d/$domain.d/$app.conf -sudo sed -i "s@NAMETOCHANGE@$app@g" /etc/nginx/conf.d/$domain.d/$app.conf +sudo sed -i "s@__NAMETOCHANGE__@$app@g" /etc/nginx/conf.d/$domain.d/$app.conf # Créer le fichier de configuration du pool php-fpm et le configure. sed -i "s@__NAMETOCHANGE__@$app@g" ../conf/php-fpm.conf @@ -49,9 +51,9 @@ sudo find $final_path -type d | xargs sudo chmod 755 # Les fichiers appartiennent à root sudo chown -R root: $final_path -# www-data doit avoir les droits d'écriture dans plugins et cache -sudo mkdir $final_path/cache -sudo chown -R www-data $final_path/cache $final_path/plugins +# www-data doit avoir les droits d'écriture dans plugins, cache et updates +sudo mkdir -p $final_path/cache +sudo chown -R www-data $final_path/cache $final_path/plugins $final_path/updates # Récupération du code de synchronisation @@ -65,19 +67,28 @@ sed -i "s@__PATH__@$path@g" ../conf/cron_leed sed -i "s@__CODESYNC__@$code_sync@g" ../conf/cron_leed sudo cp ../conf/cron_leed /etc/cron.d/$app +# Laisse un accès libre pour curl. +sudo yunohost app setting $app unprotected_uris -v "/" +# Régénère la configuration de SSOwat +sudo yunohost app ssowatconf +# Lance la procédure de mise à jour de leed. +curl -kL https://$domain$path + # Make app private if necessary sudo yunohost app setting $app is_public -v "$is_public" if [ "$is_public" = "No" ]; then - # Retire l'autorisation d'accès de la page d'install. + # Retire l'autorisation d'accès à leed sudo yunohost app setting $app unprotected_uris -d # Rend la page d'actualisation accessible pour le script cron. sudo yunohost app setting $app skipped_uris -v "/action.php" -else # Si l'app est publique - sudo yunohost app setting $app unprotected_uris -v "/" fi # Recharge la configuration Nginx sudo service nginx reload # Régénère la configuration de SSOwat sudo yunohost app ssowatconf + + +# Le thème par défaut présente actuellement un bug sur la langue et l'affichage du texte. +mysql -h localhost -u $db_user -p$db_pwd -s $db_user -e 'UPDATE leed_configuration SET `value`="marigolds-old" WHERE `key`="theme"' # On force l'ancien thème diff --git a/sources/ajouts/Update.class.php b/sources/ajouts/Update.class.php new file mode 100644 index 0000000..2340506 --- /dev/null +++ b/sources/ajouts/Update.class.php @@ -0,0 +1,113 @@ +connection; + //on sépare chaque requête par les ; + $sql_array = explode (";",$sql); + foreach ($sql_array as $val) { + $val = preg_replace('#([-].*)|(\n)#','',$val); + if ($val != '') { + //remplacement des préfixes de table + $val = str_replace('##MYSQL_PREFIX##',MYSQL_PREFIX,$val); + $result = $conn->query($val); + $ficlog = dirname(__FILE__).Update::FOLDER.'/'.substr($file,0,strlen($file)-3).'log'; + if (false===$result) { + file_put_contents($ficlog, date('d/m/Y H:i:s').' : SQL : '.$val."\n", FILE_APPEND); + file_put_contents($ficlog, date('d/m/Y H:i:s').' : '.$conn->error."\n", FILE_APPEND); + } else { + file_put_contents($ficlog, date('d/m/Y H:i:s').' : SQL : '.$val."\n", FILE_APPEND); + file_put_contents($ficlog, date('d/m/Y H:i:s').' : '.$conn->affected_rows.' rows affected'."\n", FILE_APPEND); + } + } + } + unset($conn); + } + $_SESSION = array(); + session_unset(); + session_destroy(); + } + // quand toutes les requêtes ont été executées, on insert le sql dans le json + Update::addUpdateFile(array($newFilesForUpdate)); + + return true; + } + +} + +?> \ No newline at end of file From 55a09e9ebba112a9950fb459d9a89874ad2c4be9 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 25 Jun 2016 17:36:49 +0200 Subject: [PATCH 10/13] Corrections upgrade --- scripts/upgrade | 6 +- sources/ajouts/Functions.class.php | 378 +++++++++++++++++++++++++++++ 2 files changed, 380 insertions(+), 4 deletions(-) create mode 100644 sources/ajouts/Functions.class.php diff --git a/scripts/upgrade b/scripts/upgrade index c6833e5..f9b0e95 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -67,6 +67,8 @@ sed -i "s@__PATH__@$path@g" ../conf/cron_leed sed -i "s@__CODESYNC__@$code_sync@g" ../conf/cron_leed sudo cp ../conf/cron_leed /etc/cron.d/$app +# Vide le cache de leed pour la mise à jour +sudo rm -r $final_path/cache/* # Laisse un accès libre pour curl. sudo yunohost app setting $app unprotected_uris -v "/" # Régénère la configuration de SSOwat @@ -88,7 +90,3 @@ fi sudo service nginx reload # Régénère la configuration de SSOwat sudo yunohost app ssowatconf - - -# Le thème par défaut présente actuellement un bug sur la langue et l'affichage du texte. -mysql -h localhost -u $db_user -p$db_pwd -s $db_user -e 'UPDATE leed_configuration SET `value`="marigolds-old" WHERE `key`="theme"' # On force l'ancien thème diff --git a/sources/ajouts/Functions.class.php b/sources/ajouts/Functions.class.php new file mode 100644 index 0000000..26c761b --- /dev/null +++ b/sources/ajouts/Functions.class.php @@ -0,0 +1,378 @@ + variable a sécuriser + * @param niveau de securisation + * @return variable securisée + */ + + public static function secure($var,$level = 1){ + $var = htmlspecialchars($var, ENT_QUOTES, "UTF-8"); + if($level<1)$var = mysqli_real_escape_string($var); + if($level<2)$var = addslashes($var); + return $var; + } + + + /** + * Return l'environnement/serveur sur lequel on se situe, permet de changer les + * connexions bdd en fonction de la dev, la préprod ou la prod + */ + public static function whereImI(){ + + $maps = array ( + 'LOCAL'=>array('localhost','127.0.0.1','0.0.0.1','::0.0.0.0'), + 'LAN'=>array('192.168.10.','valentin'), + 'PWAN'=>array('test.sys1.fr'), + 'WAN'=>array('www.sys1.fr'), + ); + + + $return = 'UNKNOWN'; + foreach($maps as $map=>$values){ + + foreach($values as $ip){ + $pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip); + if ($pos!==false){ + $return = $map; + } + } + } + return $return; + } + + public static function isLocal($perimeter='LOCAL'){ + $return = false; + + $localTab = array('localhost','127.0.0.1','0.0.0.1','::0.0.0.0'); + $lanTab = array('192.168.10.','valentin'); + + switch($perimeter){ + case 'LOCAL': + foreach($localTab as $ip){ + $pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip); + if ($pos!==false){ + $return = true; + } + } + break; + case 'LAN': + foreach($lanTab as $ip){ + $pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip); + if ($pos!==false){ + $return = true; + } + } + break; + case 'ALL': + foreach($localTab as $ip){ + $pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip); + if ($pos!==false){ + $return = true; + } + } + foreach($lanTab as $ip){ + $pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip); + if ($pos!==false){ + $return = true; + } + } + break; + } + + return $return; + } + + + /** + * Convertis la chaine passée en timestamp quel que soit sont format + * (prend en charge les formats type dd-mm-yyy , dd/mm/yyy, yyyy/mm/ddd...) + */ + public static function toTime($string){ + $string = str_replace('/','-',$string); + $string = str_replace('\\','-',$string); + + $string = str_replace('Janvier','Jan',$string); + $string = str_replace('Fevrier','Feb',$string); + $string = str_replace('Mars','Mar',$string); + $string = str_replace('Avril','Apr',$string); + $string = str_replace('Mai','May',$string); + $string = str_replace('Juin','Jun',$string); + $string = str_replace('Juillet','Jul',$string); + $string = str_replace('Aout','Aug',$string); + $string = str_replace('Septembre','Sept',$string); + $string = str_replace('Octobre','Oct',$string); + $string = str_replace('Novembre','Nov',$string); + $string = str_replace('Decembre','Dec',$string); + return strtotime($string); + } + + /** + * Recupere l'ip de l'internaute courant + * @author Valentin + * @return ip de l'utilisateur + */ + + public static function getIP(){ + if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ + $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} + elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ + $ip = $_SERVER['HTTP_CLIENT_IP'];} + else{ $ip = $_SERVER['REMOTE_ADDR'];} + return $ip; + } + + /** + * Retourne une version tronquée au bout de $limit caracteres de la chaine fournie + * @author Valentin + * @param message a tronquer + * @param limite de caracteres + * @return chaine tronquée + */ + public static function truncate($msg,$limit){ + if(mb_strlen($msg)>$limit){ + $fin='…' ; + $nb=$limit-mb_strlen($fin) ; + }else{ + $nb=mb_strlen($msg); + $fin=''; + } + return mb_substr($msg, 0, $nb).$fin; + } + + + function getExtension($fileName){ + $dot = explode('.',$fileName); + return $dot[sizeof($dot)-1]; + } + + /** + * Definis si la chaine fournie est existante dans la reference fournie ou non + * @param unknown_type $string + * @param unknown_type $reference + * @return false si aucune occurence du string, true dans le cas contraire + */ + public static function contain($string,$reference){ + $return = true; + $pos = strpos($reference,$string); + if ($pos === false) { + $return = false; + } + return strtolower($return); + } + + /** + * Définis si la chaine passée en parametre est une url ou non + */ + public static function isUrl($url){ + $return =false; + if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { + $return =true; + } + return $return; + } + + /** + * Définis si la chaine passée en parametre est une couleur héxadécimale ou non + */ + public static function isColor($color){ + $return =false; + if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $color)) { + $return =true; + } + return $return; + } + + /** + * Définis si la chaine passée en parametre est un mail ou non + */ + public static function isMail($mail){ + $return =false; + if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { + $return =true; + } + return $return; + } + + /** + * Définis si la chaine passée en parametre est une IP ou non + */ + public static function isIp($ip){ + $return =false; + if (preg_match('^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$',$ip)) { + $return =true; + } + return $return; + } + + public static function sourceName($string){ + $name = strtolower($string); + $name = str_replace(' ','-',$name); + $name = str_replace(''','-',$name); + $name = str_replace('\'','-',$name); + $name = str_replace(',','-',$name); + $name = str_replace(':','-',$name); + $name = str_replace('à','a',$name); + $name = trim($name); + $name = html_entity_decode($name,null,'UTF-8'); + return $name; + } + + public static function makeCookie($name, $value, $expire='') { + if($expire == '') { + setcookie($name, $value, mktime(0,0,0, date("d"), + date("m"), (date("Y")+1)),'/'); + }else { + setcookie($name, '', mktime(0,0,0, date("d"), + date("m"), (date("Y")-1)),'/'); + } + } + + public static function destroyCookie($name){ + Fonction::makeCookie($name,'',time()-3600); + unset($_COOKIE[$name]); + } + + public static function wordwrap($str, $width = 75, $break = "\n", $cut = false) + { + $str = html_entity_decode($str); + $str = htmlentities (wordwrap($str,$width,$break,$cut)); + $str = str_replace('<br/>','
',$str); + $str = str_replace('&','&',$str); + return $str; + } + + public static function createFile($filePath,$content){ + $fichier = fopen($filePath,"w+"); + $fwriteResult = fwrite($fichier,$content); + fclose($fichier); + } + + + + public static function convertFileSize($bytes) + { + if($bytes<1024){ + return round(($bytes / 1024), 2).' o'; + }elseif(1024<$bytes && $bytes<1048576){ + return round(($bytes / 1024), 2).' ko'; + }elseif(1048576<$bytes && $bytes<1073741824){ + return round(($bytes / 1024)/1024, 2).' Mo'; + }elseif(1073741824<$bytes){ + return round(($bytes / 1024)/1024/1024, 2).' Go'; + } + } + + + public static function hexaValue($str){ + $code = dechex(crc32($str)); + $code = substr($code, 0, 6); + return $code; + } + + public static function scanRecursiveDir($dir){ + $files = scandir($dir); + $allFiles = array(); + foreach($files as $file){ + if($file!='.' && $file!='..'){ + if(is_dir($dir.$file)){ + $allFiles = array_merge($allFiles,Fonction::scanRecursiveDir($dir.$file)); + }else{ + $allFiles[]=str_replace('//','/',$dir.'/'.$file); + } + } + } + return $allFiles; + } + + /** Permet la sortie directe de texte à l'écran, sans tampon. + Source : http://php.net/manual/fr/function.flush.php + */ + public static function triggerDirectOutput() { + // La ligne de commande n'en a pas besoin. + if ('cli'==php_sapi_name()) return; + if (function_exists('apache_setenv')) { + /* Selon l'hébergeur la fonction peut être désactivée. Alors Php + arrête le programme avec l'erreur : + "PHP Fatal error: Call to undefined function apache_setenv()". + */ + @apache_setenv('no-gzip', 1); + } + @ini_set('zlib.output_compression', 0); + @ini_set('implicit_flush', 1); + for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); } + ob_implicit_flush(1); + } + + public static function relativePath($from, $to, $ps = '/') { + $arFrom = explode($ps, rtrim($from, $ps)); + $arTo = explode($ps, rtrim($to, $ps)); + while(count($arFrom) && count($arTo) && ($arFrom[0] == $arTo[0])) { + array_shift($arFrom); + array_shift($arTo); + } + return str_pad("", count($arFrom) * 3, '..'.$ps).implode($ps, $arTo); + } + + + // Nettoyage de l'url avant la mise en base + public static function clean_url( $url ) { + $url = str_replace('&', '&', $url); + return $url; + } + + + + /** + * Méthode de test de connexion. + * @return true si ok + * @param server + * @param login + * @param pass + * @param db facultatif, si précisé alors tente de la séléctionner + */ + public static function testDb($server, $login, $pass, $db=null) { + /* Méthode hors des classes dédiées aux BDD afin de supporter le moins + de dépendances possibles. En particulier, pas besoin que le fichier + de configuration existe. */ + $link = mysqli_connect($server, $login, $pass, $db); + if (false===$link) return false; + mysqli_close($link); + return true; + } + + /** + * @return les langues acceptées par le navigateur + */ + public static function getBrowserLanguages() { + /* http://www.w3.org/International/questions/qa-lang-priorities.en.php + * ex: da, en-gb;q=0.8,en;q=0.7 --> array('da','en'); + */ + if (!array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) return array(); + $languages = array(); + $chunks = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']); + foreach($chunks as $chunk) $languages []= substr($chunk, 0, 2); + return array_unique($languages); + } + + /** + * @return boolean + */ + public static function isAjaxCall() { + return !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; + } +} +?> From 365e6ff0bf2a80755857bdafe8ff1b14aa1e9b93 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 25 Jun 2016 17:57:34 +0200 Subject: [PATCH 11/13] finalpath absent --- scripts/upgrade | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/upgrade b/scripts/upgrade index f9b0e95..6cabcf4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -16,6 +16,10 @@ is_public=$(sudo yunohost app setting $app is_public) final_path=$(sudo yunohost app setting $app final_path) db_pwd=$(sudo yunohost app setting $app mysqlpwd) +if [ -z $final_path ]; then # Si final_path n'est pas renseigné dans app setting + final_path=/var/www/$app + sudo yunohost app setting $app final_path -v $final_path +fi CHECK_PATH # Vérifie et corrige la syntaxe du path. From ad4ce14bd25ce2cad048f0c31e04d5fef5487af7 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 29 Jun 2016 00:13:30 +0200 Subject: [PATCH 12/13] Correction backup-restore + check_process --- check_process | 26 ++++++++++++++++++++++++++ scripts/.fonctions | 10 +++++----- scripts/backup | 12 ++++++------ scripts/restore | 8 ++------ 4 files changed, 39 insertions(+), 17 deletions(-) create mode 100644 check_process diff --git a/check_process b/check_process new file mode 100644 index 0000000..9543caa --- /dev/null +++ b/check_process @@ -0,0 +1,26 @@ +## Test complet + auto_remove=1 + # Manifest + domain="domain.tld" (DOMAIN) + path="/leed" (PATH) + admin="john" (USER) + password="pass" (PASSWORD) + language="fr" + market="Yes" + is_public="Yes" (PUBLIC|public=Yes|private=No) + # Checks + setup_sub_dir=1 + setup_root=1 + setup_nourl=0 + setup_private=1 + setup_public=1 + upgrade=1 + backup_restore=1 + multi_instance=1 + wrong_user=1 + wrong_path=1 + incorrect_path=1 + corrupt_source=0 + fail_download_source=0 + port_already_use=1 + final_path_already_use=0 diff --git a/scripts/.fonctions b/scripts/.fonctions index cfb9d49..c225234 100755 --- a/scripts/.fonctions +++ b/scripts/.fonctions @@ -7,13 +7,13 @@ YNH_VERSION () { # Renvoi le numéro de version de la moulinette Yunohost 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" && false) + test -n "$1" || (echo "$2" && false >&2) } 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!!" + 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. @@ -40,7 +40,7 @@ TRAP_OFF () { # Ignoring signal capture until TRAP_ON CHECK_USER () { # Vérifie la validité de l'user admin # $1 = Variable de l'user admin. - sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" && false) + sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" && false >&2) } CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin. @@ -60,7 +60,7 @@ CHECK_FINALPATH () { # Vérifie que le dossier de destination n'est pas déjà u final_path=/var/www/$app if [ -e "$final_path" ] then - echo "This path already contains a folder" + echo "This path already contains a folder" >&2 false fi } @@ -81,7 +81,7 @@ SETUP_SOURCE () { # Télécharge la source, décompresse et copie dans $final_pa # $1 = Nom de l'archive téléchargée. wget -nv --show-progress -i ../sources/source_url -O $1 # Vérifie la somme de contrôle de la source téléchargée. - md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false) + md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false >&2) # Décompresse la source if [ "$(echo ${1##*.})" == "gz" ]; then tar -x -f $1 diff --git a/scripts/backup b/scripts/backup index 0bfeb28..a73c193 100644 --- a/scripts/backup +++ b/scripts/backup @@ -1,12 +1,8 @@ #!/bin/bash -source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script - # Récupère les infos de l'application. -YNH_VERSION # Récupère le numéro de version de Yunohost. -if [ $version = "2.4" ]; then - app=$YNH_APP_INSTANCE_NAME -else +app=$YNH_APP_INSTANCE_NAME +if [ -z "$app" ]; then app=leed fi final_path=$(sudo yunohost app setting $app final_path) @@ -28,3 +24,7 @@ sudo cp -a /etc/nginx/conf.d/$domain.d/$app.conf $backup_dir/nginx.conf # Copy dedicated php-fpm process to backup folder sudo cp -a /etc/php5/fpm/pool.d/$app.conf $backup_dir/php-fpm.conf sudo cp -a /etc/php5/fpm/conf.d/20-$app.ini $backup_dir/php-fpm.ini + +# Backup db +root_pwd=$(sudo cat /etc/yunohost/mysql) +sudo mysqldump -u root -p$root_pwd --no-create-db $app --result-file="$backup_dir/db.sql" diff --git a/scripts/restore b/scripts/restore index 297dfe7..311f164 100644 --- a/scripts/restore +++ b/scripts/restore @@ -1,12 +1,8 @@ #!/bin/bash -source .fonctions # Charge les fonctions génériques habituellement utilisées dans le script - # Récupère les infos de l'application. -YNH_VERSION # Récupère le numéro de version de Yunohost. -if [ $version = "2.4" ]; then - app=$YNH_APP_INSTANCE_NAME -else +app=$YNH_APP_INSTANCE_NAME +if [ -z "$app" ]; then app=leed fi final_path=$(sudo yunohost app setting $app final_path) From 4df8a715fbca8ca1844b35f9bdf8e114541baf72 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sat, 16 Jul 2016 13:05:02 +0200 Subject: [PATCH 13/13] Correction restore --- check_process | 9 ++- manifest.json | 177 +++++++++++++++++++++++---------------------- scripts/.fonctions | 10 ++- scripts/install | 2 +- scripts/restore | 9 +++ scripts/upgrade | 2 +- 6 files changed, 112 insertions(+), 97 deletions(-) diff --git a/check_process b/check_process index 9543caa..7c6b877 100644 --- a/check_process +++ b/check_process @@ -1,6 +1,6 @@ -## Test complet +;; Test complet auto_remove=1 - # Manifest + ; Manifest domain="domain.tld" (DOMAIN) path="/leed" (PATH) admin="john" (USER) @@ -8,7 +8,8 @@ language="fr" market="Yes" is_public="Yes" (PUBLIC|public=Yes|private=No) - # Checks + ; Checks + pkg_linter=1 setup_sub_dir=1 setup_root=1 setup_nourl=0 @@ -22,5 +23,5 @@ incorrect_path=1 corrupt_source=0 fail_download_source=0 - port_already_use=1 + port_already_use=0 final_path_already_use=0 diff --git a/manifest.json b/manifest.json index 52813e3..23a6392 100644 --- a/manifest.json +++ b/manifest.json @@ -1,90 +1,93 @@ { - "name": "Leed", - "id": "leed", - "packaging_format": 1, - "requirements": { - "yunohost": ">= 2.4" - }, - "description": { - "en": "Leed is a minimalistic RSS feed aggregator which allows quick and non-intrusive reading of feeds.", - "fr": "Leed est un agrégateur RSS minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive." - }, - "version": "1.6", + "name": "Leed", + "id": "leed", + "packaging_format": 1, + "requirements": { + "yunohost": ">= 2.4" + }, + "description": { + "en": "Leed is a minimalistic RSS feed aggregator which allows quick and non-intrusive reading of feeds.", + "fr": "Leed est un agrégateur RSS minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive." + }, + "version": "1.7", "url": "http://leed.idleman.fr/", - "licence": "free", - "maintainer": { - "name": "Maniack Crudelis", - "email": "maniackc_dev@crudelis.fr" - }, - "multi_instance": "true", - "services": [ - "nginx", - "php5-fpm", - "mysql" - ], - "arguments": { - "install" : [ - { - "name": "domain", - "ask": { - "en": "Choose a domain for Leed", - "fr": "Choisissez un domaine pour Leed" - }, - "example": "domain.org" - }, - { - "name": "path", - "ask": { - "en": "Choose a path for Leed", - "fr": "Choisissez un chemin pour Leed" - }, - "example": "/leed", - "default": "/leed" - }, - { - "name": "admin", - "ask": { - "en": "Choose the Leed administrator (must be an existing YunoHost user)", - "fr": "Choisissez un administrateur Leed (doit être un utilisateur YunoHost)" - }, - "example": "john" - }, - { - "name": "password", - "type": "password", - "ask": { - "en": "Set the administrator password Leed", - "fr": "Définissez le mot de passe administrateur de Leed" - }, - "example": "Choose a password" - }, - { - "name": "language", - "ask": { - "en": "Choose your agregator's language", - "fr": "Choisissez la langue de votre agrégateur" - }, - "choices" : ["en", "fr", "es"], - "default" : "en" - }, - { - "name": "market", - "ask": { - "en": "Do you want to activate the Leed Market?", - "fr": "Voulez-vous activer le Leed Market ?" - }, - "choices": ["Yes", "No"], - "default": "Yes" - }, - { - "name": "is_public", - "ask": { - "en": "Is it a public website ?", - "fr": "Est-ce un site public ?" - }, - "choices": ["Yes", "No"], - "default": "No" - } - ] - } + "license": "free", + "maintainer": { + "name": "Maniack Crudelis", + "email": "maniackc_dev@crudelis.fr" + }, + "multi_instance": true, + "services": [ + "nginx", + "php5-fpm", + "mysql" + ], + "arguments": { + "install" : [ + { + "name": "domain", + "type": "domain", + "ask": { + "en": "Choose a domain for Leed", + "fr": "Choisissez un domaine pour Leed" + }, + "example": "domain.org" + }, + { + "name": "path", + "type": "path", + "ask": { + "en": "Choose a path for Leed", + "fr": "Choisissez un chemin pour Leed" + }, + "example": "/leed", + "default": "/leed" + }, + { + "name": "admin", + "type": "user", + "ask": { + "en": "Choose the Leed administrator (must be an existing YunoHost user)", + "fr": "Choisissez un administrateur Leed (doit être un utilisateur YunoHost)" + }, + "example": "john" + }, + { + "name": "password", + "type": "password", + "ask": { + "en": "Set the administrator password Leed", + "fr": "Définissez le mot de passe administrateur de Leed" + }, + "example": "Choose a password" + }, + { + "name": "language", + "ask": { + "en": "Choose your agregator's language", + "fr": "Choisissez la langue de votre agrégateur" + }, + "choices" : ["en", "fr", "es"], + "default" : "en" + }, + { + "name": "market", + "ask": { + "en": "Do you want to activate the Leed Market?", + "fr": "Voulez-vous activer le Leed Market ?" + }, + "choices": ["Yes", "No"], + "default": "Yes" + }, + { + "name": "is_public", + "ask": { + "en": "Is it a public website ?", + "fr": "Est-ce un site public ?" + }, + "choices": ["Yes", "No"], + "default": "No" + } + ] + } } diff --git a/scripts/.fonctions b/scripts/.fonctions index c225234..ab08197 100755 --- a/scripts/.fonctions +++ b/scripts/.fonctions @@ -1,5 +1,7 @@ #!/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) } @@ -7,7 +9,7 @@ YNH_VERSION () { # Renvoi le numéro de version de la moulinette Yunohost 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" && false >&2) + test -n "$1" || (echo "$2" >&2 && false) } EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus. @@ -20,7 +22,7 @@ EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les # 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 + 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 @@ -40,7 +42,7 @@ TRAP_OFF () { # Ignoring signal capture until TRAP_ON CHECK_USER () { # Vérifie la validité de l'user admin # $1 = Variable de l'user admin. - sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" && false >&2) + sudo yunohost user list --json | grep -q "\"username\": \"$1\"" || (echo "Wrong admin" >&2 && false) } CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin. @@ -81,7 +83,7 @@ SETUP_SOURCE () { # Télécharge la source, décompresse et copie dans $final_pa # $1 = Nom de l'archive téléchargée. wget -nv --show-progress -i ../sources/source_url -O $1 # Vérifie la somme de contrôle de la source téléchargée. - md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" && false >&2) + md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" >&2 && false) # Décompresse la source if [ "$(echo ${1##*.})" == "gz" ]; then tar -x -f $1 diff --git a/scripts/install b/scripts/install index 803b356..8e0253f 100644 --- a/scripts/install +++ b/scripts/install @@ -95,7 +95,7 @@ sudo yunohost app setting $app market -v "$market" if [ "$market" = "Yes" ]; then sudo rm -R $final_path/plugins - sudo git clone https://github.com/ldleman/Leed-market.git $final_path/plugins + sudo git clone https://github.com/ldleman/Leed-market.git "$final_path/plugins" fi diff --git a/scripts/restore b/scripts/restore index 311f164..386b8fd 100644 --- a/scripts/restore +++ b/scripts/restore @@ -1,5 +1,8 @@ #!/bin/bash +# Source app helpers +source /usr/share/yunohost/helpers + # Récupère les infos de l'application. app=$YNH_APP_INSTANCE_NAME if [ -z "$app" ]; then @@ -14,6 +17,12 @@ backup_dir=$1/apps/$app # Restore sources & data sudo cp -a $backup_dir/sources/. $final_path +# Créer la base de donnée et la restaure +db_pwd=$(sudo yunohost app setting $app mysqlpwd) +db_user=$app +ynh_mysql_create_db $db_user $db_user $db_pwd +mysql --debug-check -u $db_user -p$db_pwd $db_user < ${backup_dir}/db.sql + # Restore Nginx and YunoHost parameters sudo cp -a $backup_dir/yunohost/. /etc/yunohost/apps/$app sudo cp -a $backup_dir/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf diff --git a/scripts/upgrade b/scripts/upgrade index 6cabcf4..06058c2 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -72,7 +72,7 @@ sed -i "s@__CODESYNC__@$code_sync@g" ../conf/cron_leed sudo cp ../conf/cron_leed /etc/cron.d/$app # Vide le cache de leed pour la mise à jour -sudo rm -r $final_path/cache/* +sudo rm -rf $final_path/cache/* # Laisse un accès libre pour curl. sudo yunohost app setting $app unprotected_uris -v "/" # Régénère la configuration de SSOwat