mirror of
https://github.com/YunoHost-Apps/cops_ynh.git
synced 2024-09-03 18:25:57 +02:00
Avoid path confusion in manifest.json
This commit is contained in:
parent
d5ec725e70
commit
d16178ec9a
4 changed files with 49 additions and 37 deletions
|
@ -42,7 +42,7 @@
|
||||||
"default": "/cops"
|
"default": "/cops"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "calibrepath",
|
"name": "calibre",
|
||||||
"ask": {
|
"ask": {
|
||||||
"en": "Indicate the location of Calibre library. DON'T store it in your /var/www/cops or it will be removed on next upgrade !!",
|
"en": "Indicate the location of Calibre library. DON'T store it in your /var/www/cops or it will be removed on next upgrade !!",
|
||||||
"fr": "Indiquez le chemin de votre bibliotheque Calibre. Ne la mettez pas dans /var/www/cops ou elle sera supprimée à la prochaine upgrade !!!"
|
"fr": "Indiquez le chemin de votre bibliotheque Calibre. Ne la mettez pas dans /var/www/cops ou elle sera supprimée à la prochaine upgrade !!!"
|
||||||
|
|
51
scripts/fonctions
Normal file → Executable file
51
scripts/fonctions
Normal file → Executable file
|
@ -6,28 +6,29 @@ CHECK_VAR () { # Vérifie que la variable n'est pas vide.
|
||||||
test -n "$1" || (echo "$2" >&2 && false)
|
test -n "$1" || (echo "$2" >&2 && false)
|
||||||
}
|
}
|
||||||
|
|
||||||
#EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus.
|
EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus.
|
||||||
# trap '' ERR
|
exit_code=$?
|
||||||
# echo -e "\e[91m \e[1m" # Shell in light red bold
|
if [ "$exit_code" -eq 0 ]; then
|
||||||
# echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" >&2
|
exit 0 # Quitte sans erreur si le script se termine correctement.
|
||||||
#
|
fi
|
||||||
# CLEAN_SETUP # Appel la fonction de nettoyage spécifique du script install.
|
trap '' EXIT
|
||||||
#
|
set +eu
|
||||||
# # Compense le bug de ssowat qui ne supprime pas l'entrée de l'app en cas d'erreur d'installation.
|
echo -e "\e[91m \e[1m" # Shell in light red bold
|
||||||
# sudo sed -i "\@\"$domain$path/\":@d" /etc/ssowat/conf.json
|
echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" >&2
|
||||||
#
|
|
||||||
# ynh_ die
|
|
||||||
#}
|
|
||||||
|
|
||||||
TRAP_ON () { # Activate signal capture
|
if type -t CLEAN_SETUP > /dev/null; then # Vérifie l'existance de la fonction avant de l'exécuter.
|
||||||
trap EXIT_PROPERLY ERR # Capturing ex it signals on error
|
CLEAN_SETUP # Appel la fonction de nettoyage spécifique du script install.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
ynh_die
|
||||||
}
|
}
|
||||||
|
|
||||||
TRAP_OFF () { # Ignoring signal capture until TRAP_ON
|
TRAP_ON () { # Activate signal capture
|
||||||
# Pour une raison que j'ignore, la fonction TRAP_ON fonctionne très bien.
|
set -eu # Exit if a command fail, and if a variable is used unset.
|
||||||
# Mais pas la fonction TRAP_OFF...
|
trap EXIT_PROPERLY EXIT # Capturing exit signals on shell script
|
||||||
# Utiliser directement `trap '' ERR` dans le code pour l'utiliser, à la place de la fonction.
|
|
||||||
trap '' ERR # Ignoring ex it signals
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_USER () { # Vérifie la validité de l'user admin
|
CHECK_USER () { # Vérifie la validité de l'user admin
|
||||||
|
@ -44,15 +45,6 @@ CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_CALIBREPATH () { # Vérifie la présence du / en début de path. Et son absence à la fin.
|
|
||||||
if [ "${calibrepath:0:1}" != "/" ]; then # Si le premier caractère n'est pas un /
|
|
||||||
calibrepath="/$calibrepath" # Ajoute un / en début de path
|
|
||||||
fi
|
|
||||||
if [ "${calibrepath:${#calibrepath}-1}" == "/" ] && [ ${#calibrepath} -gt 1 ]; then # Si le dernier caractère est un / et que ce n'est pas le seul caractère.
|
|
||||||
calibrepath="${calibrepath:0:${#calibrepath}-1}" # Supprime le dernier caractère
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_DOMAINPATH () { # Vérifie la disponibilité du path et du domaine.
|
CHECK_DOMAINPATH () { # Vérifie la disponibilité du path et du domaine.
|
||||||
sudo yunohost app checkurl $domain$path -a $app
|
sudo yunohost app checkurl $domain$path -a $app
|
||||||
}
|
}
|
||||||
|
@ -69,13 +61,14 @@ 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.
|
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
|
# $1 = Nom de la base de donnée
|
||||||
db_user=$1
|
db_user=$1
|
||||||
|
db_user=${db_user//-/_} # mariadb ne supporte pas les - dans les noms de base de données. Ils sont donc remplacé par des _
|
||||||
# Génère un mot de passe aléatoire.
|
# Génère un mot de passe aléatoire.
|
||||||
# db_pwd=$(head -n20 /dev/urandom | tr -c -d 'A-Za-z0-9' | head -c20)
|
# db_pwd=$(head -n20 /dev/urandom | tr -c -d 'A-Za-z0-9' | head -c20)
|
||||||
db_pwd=$(ynh_string_random)
|
db_pwd=$(ynh_string_random)
|
||||||
CHECK_VAR "$db_pwd" "db_pwd empty"
|
CHECK_VAR "$db_pwd" "db_pwd empty"
|
||||||
# Utilise '$app' comme nom d'utilisateur et de base de donnée
|
# Utilise '$app' comme nom d'utilisateur et de base de donnée
|
||||||
# Initialise la base de donnée et stocke le mot de passe mysql.
|
# Initialise la base de donnée et stocke le mot de passe mysql.
|
||||||
ynh_mysql_create_db $db_user $db_user $db_pwd
|
ynh_mysql_create_db "$db_user" "$db_user" $db_pwd
|
||||||
ynh_app_setting_set $app mysqlpwd $db_pwd
|
ynh_app_setting_set $app mysqlpwd $db_pwd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ domain=$YNH_APP_ARG_DOMAIN
|
||||||
path=$YNH_APP_ARG_PATH
|
path=$YNH_APP_ARG_PATH
|
||||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||||
runninguser=$YNH_APP_ARG_RUNNINGUSER
|
runninguser=$YNH_APP_ARG_RUNNINGUSER
|
||||||
calibrepath=$YNH_APP_ARG_CALIBREPATH
|
calibre=$YNH_APP_ARG_CALIBRE
|
||||||
basicauthcreate=$YNH_APP_ARG_BASICAUTHCREATE
|
basicauthcreate=$YNH_APP_ARG_BASICAUTHCREATE
|
||||||
basicauthuser=$YNH_APP_ARG_BASICAUTHUSER
|
basicauthuser=$YNH_APP_ARG_BASICAUTHUSER
|
||||||
basicauthpass=$YNH_APP_ARG_BASICAUTHPASS
|
basicauthpass=$YNH_APP_ARG_BASICAUTHPASS
|
||||||
|
@ -31,7 +31,17 @@ CHECK_DOMAINPATH
|
||||||
# Check destination folder is not used already
|
# Check destination folder is not used already
|
||||||
CHECK_FINALPATH
|
CHECK_FINALPATH
|
||||||
|
|
||||||
CHECK_CALIBREPATH;
|
# We check that calibre path is correct
|
||||||
|
CHECK_CALIBRE () { # Vérifie la présence du / en début de path. Et son absence à la fin.
|
||||||
|
if [ "${calibre:0:1}" != "/" ]; then # Si le premier caractère n'est pas un /
|
||||||
|
calibre="/$calibre" # Ajoute un / en début de path
|
||||||
|
fi
|
||||||
|
if [ "${calibre:${#calibre}-1}" == "/" ] && [ ${#calibre} -gt 1 ]; then # Si le dernier caractère est un / $
|
||||||
|
calibre="${calibre:0:${#calibre}-1}" # Supprime le dernier caractère
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
CHECK_CALIBRE;
|
||||||
|
|
||||||
final_path=/var/www/$app
|
final_path=/var/www/$app
|
||||||
|
|
||||||
|
@ -41,7 +51,7 @@ ynh_app_setting_set "$app" domain "$domain"
|
||||||
ynh_app_setting_set "$app" is_public "$is_public"
|
ynh_app_setting_set "$app" is_public "$is_public"
|
||||||
ynh_app_setting_set "$app" final_path "$final_path"
|
ynh_app_setting_set "$app" final_path "$final_path"
|
||||||
ynh_app_setting_set "$app" runninguser "$runninguser"
|
ynh_app_setting_set "$app" runninguser "$runninguser"
|
||||||
ynh_app_setting_set "$app" calibrepath "$calibrepath"
|
ynh_app_setting_set "$app" calibre "$calibre"
|
||||||
ynh_app_setting_set "$app" basicauthcreate "$basicauthcreate"
|
ynh_app_setting_set "$app" basicauthcreate "$basicauthcreate"
|
||||||
|
|
||||||
finalnginxconf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
finalnginxconf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
||||||
|
@ -64,7 +74,7 @@ sudo md5sum -c ../sources/source_md5 --status || (echo "Corrupt source" >&2 && f
|
||||||
sudo unzip ${cops_file} -d $final_path
|
sudo unzip ${cops_file} -d $final_path
|
||||||
|
|
||||||
# Site adjustments
|
# Site adjustments
|
||||||
sed -i "s@CALIBRETOCHANGE@$calibrepath@g" ../conf/config_local.php
|
sed -i "s@CALIBRETOCHANGE@$calibre@g" ../conf/config_local.php
|
||||||
timezone=`sudo cat /etc/timezone`;
|
timezone=`sudo cat /etc/timezone`;
|
||||||
sed -i "s@TIMEZONETOCHANGE@$timezone@g" ../conf/config_local.php
|
sed -i "s@TIMEZONETOCHANGE@$timezone@g" ../conf/config_local.php
|
||||||
|
|
||||||
|
|
|
@ -22,11 +22,20 @@ final_path=$(ynh_app_setting_get $app final_path)
|
||||||
finalnginxconf=$(ynh_app_setting_get $app finalnginxconf)
|
finalnginxconf=$(ynh_app_setting_get $app finalnginxconf)
|
||||||
finalphpconf=$(ynh_app_setting_get $app finalphpconf)
|
finalphpconf=$(ynh_app_setting_get $app finalphpconf)
|
||||||
runninguser=$(ynh_app_setting_get $app runninguser)
|
runninguser=$(ynh_app_setting_get $app runninguser)
|
||||||
calibrepath=$(ynh_app_setting_get $app calibrepath)
|
calibre=$(ynh_app_setting_get $app calibre)
|
||||||
basicauthcreate=$(ynh_app_setting_get $app basicauthcreate)
|
basicauthcreate=$(ynh_app_setting_get $app basicauthcreate)
|
||||||
|
|
||||||
# We check that calibre path is correct
|
# We check that calibre path is correct
|
||||||
CHECK_CALIBREPATH
|
CHECK_CALIBRE () { # Vérifie la présence du / en début de path. Et son absence à la fin.
|
||||||
|
if [ "${calibre:0:1}" != "/" ]; then # Si le premier caractère n'est pas un /
|
||||||
|
calibre="/$calibre" # Ajoute un / en début de path
|
||||||
|
fi
|
||||||
|
if [ "${calibre:${#calibre}-1}" == "/" ] && [ ${#calibre} -gt 1 ]; then # Si le dernier caractère est un / $
|
||||||
|
calibre="${calibre:0:${#calibre}-1}" # Supprime le dernier caractère
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
CHECK_CALIBRE
|
||||||
|
|
||||||
# We install dependencies
|
# We install dependencies
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
|
|
Loading…
Reference in a new issue