#!/bin/bash set -eu # https://github.com/YunoHost-Apps/wordpress_ynh/blob/code_refactoring/scripts/install #================================================= # GENERIC STARTING #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # MANAGE FAILURE OF THE SCRIPT #================================================= ynh_abort_if_errors # Active trap pour arrêter le script si une erreur est détectée. #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= app=$YNH_APP_INSTANCE_NAME # Retrieve arguments domain=$YNH_APP_ARG_DOMAIN path_url=$YNH_APP_ARG_PATH is_public=$YNH_APP_ARG_IS_PUBLIC language=$YNH_APP_ARG_LANGUAGE path_url=$(ynh_normalize_url_path $path_url) # Vérifie et corrige la syntaxe du path. CHECK_DOMAINPATH # Vérifie la disponibilité du path et du domaine. CHECK_FINALPATH # Vérifie que le dossier de destination n'est pas déjà utilisé. sudo mkdir -p $final_path #================================================= # STORE SETTINGS FROM MANIFEST #================================================= ynh_app_setting_set $app domain $domain ynh_app_setting_set $app path $path_url ynh_app_setting_set $app is_public $is_public ynh_app_setting_set $app language $language ynh_app_setting_set $app final_path $final_path #================================================= # CREATE A SQL BDD #================================================= db_name=$(ynh_make_valid_dbid $app) ynh_app_setting_set $app db_name $db_name # $1 ownerdelabase, $2 namedelabase ynh_mysql_generate_db $db_name $db_name # Charge les commandes sql communes à tous les scripts. # mysql --debug-check -u $db_user -p$db_pwd $db_user < ../conf/sql/common.sql ynh_mysql_connect_as $db_name $db_pwd $db_name < ../conf/sql/mytinytodo.sql #================================================= # CREATE DEDICATED USER #================================================= ynh_system_user_create $app # Créer un utilisateur système dédié à l'app mytinytodo #================================================= # NGINX CONFIGURATION #================================================= # Copie le fichier de config nginx sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf # Modifie les variables dans le fichier de configuration nginx #location directive sudo sed -i "s@__PATHTOCHANGE__@$path_url@g" /etc/nginx/conf.d/$domain.d/$app.conf #alias directive, il faut peut etre ajout un / apres final_path sudo sed -i "s@__FINALPATH__@$final_path@g" /etc/nginx/conf.d/$domain.d/$app.conf # verifier la valeur de $final_path pour moi il y a /var/www/mytinytodo # la nom de la base et l'utilisateur de la base on la même valeur # mise en place de la config de la base au niveau de mytinytodo sudo sed -i "s@__TODO_HOST__@localhost@g" ../conf/config.php sudo sed -i "s@__TODO_DB__@$db_name@g" ../conf/config.php sudo sed -i "s@__TODO_USER__@$db_name@g" ../conf/config.php sudo sed -i "s@__TODO_PASSWORD__@$db_pwd@g" ../conf/config.php sudo sed -i "s@__TODO_LANG__@$language@g" ../conf/config.php # Recuperation des sources sur le internet et decompression SETUP_SOURCE_ZIP # Changement de droits pour que l'utilisateur puisse sauvegarder # sa configuration dans config.php et les sessions dsans /tmp/sessions sudo cp ../conf/config.php $final_path/db/config.php sudo rm -f $final_path/setup.php sudo rm -f $final_path/db/todolist.db sudo chmod o+w $final_path/db/config.php sudo chmod o+w $final_path/tmp/sessions # je donne les droits a mytinytodo sur /var/www/mytinyto/* sudo chown -R $app: $final_path #================================================= # SETUP SSOWAT #================================================= # 0 : pas d'acces publique # 1 : acces publique autorise if [ $is_public -eq 0 ]; then # Retire l'accès public ynh_app_setting_delete $app unprotected_uris fi #================================================= # RELOAD NGINX #================================================= sudo systemctl reload nginx