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"
|
||||
},
|
||||
{
|
||||
"name": "calibrepath",
|
||||
"name": "calibre",
|
||||
"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 !!",
|
||||
"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)
|
||||
}
|
||||
|
||||
#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
|
||||
#
|
||||
# ynh_ die
|
||||
#}
|
||||
EXIT_PROPERLY () { # Provoque l'arrêt du script en cas d'erreur. Et nettoye les résidus.
|
||||
exit_code=$?
|
||||
if [ "$exit_code" -eq 0 ]; then
|
||||
exit 0 # Quitte sans erreur si le script se termine correctement.
|
||||
fi
|
||||
trap '' EXIT
|
||||
set +eu
|
||||
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
|
||||
|
||||
TRAP_ON () { # Activate signal capture
|
||||
trap EXIT_PROPERLY ERR # Capturing ex it signals on error
|
||||
if type -t CLEAN_SETUP > /dev/null; then # Vérifie l'existance de la fonction avant de l'exécuter.
|
||||
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
|
||||
# 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 ex it signals
|
||||
TRAP_ON () { # Activate signal capture
|
||||
set -eu # Exit if a command fail, and if a variable is used unset.
|
||||
trap EXIT_PROPERLY EXIT # Capturing exit signals on shell script
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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.
|
||||
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.
|
||||
# $1 = Nom de la base de donnée
|
||||
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.
|
||||
# db_pwd=$(head -n20 /dev/urandom | tr -c -d 'A-Za-z0-9' | head -c20)
|
||||
db_pwd=$(ynh_string_random)
|
||||
CHECK_VAR "$db_pwd" "db_pwd empty"
|
||||
# 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.
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ domain=$YNH_APP_ARG_DOMAIN
|
|||
path=$YNH_APP_ARG_PATH
|
||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||
runninguser=$YNH_APP_ARG_RUNNINGUSER
|
||||
calibrepath=$YNH_APP_ARG_CALIBREPATH
|
||||
calibre=$YNH_APP_ARG_CALIBRE
|
||||
basicauthcreate=$YNH_APP_ARG_BASICAUTHCREATE
|
||||
basicauthuser=$YNH_APP_ARG_BASICAUTHUSER
|
||||
basicauthpass=$YNH_APP_ARG_BASICAUTHPASS
|
||||
|
@ -31,7 +31,17 @@ CHECK_DOMAINPATH
|
|||
# Check destination folder is not used already
|
||||
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
|
||||
|
||||
|
@ -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" final_path "$final_path"
|
||||
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"
|
||||
|
||||
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
|
||||
|
||||
# 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`;
|
||||
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)
|
||||
finalphpconf=$(ynh_app_setting_get $app finalphpconf)
|
||||
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)
|
||||
|
||||
# We check that calibrepath is correct
|
||||
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
|
||||
|
||||
# We install dependencies
|
||||
sudo apt-get update -y
|
||||
|
|
Loading…
Reference in a new issue