diff --git a/check_process b/check_process index 7c0bf58..1568e71 100644 --- a/check_process +++ b/check_process @@ -4,6 +4,7 @@ path="/path" is_public=1 password="strong-password" + database="pgsql" ; Checks pkg_linter=1 setup_sub_dir=1 diff --git a/conf/config.inc.php.mysql b/conf/config.inc.php.mysql new file mode 100644 index 0000000..b2e6d86 --- /dev/null +++ b/conf/config.inc.php.mysql @@ -0,0 +1,25 @@ + db.sql - #================================================= # SPECIFIC BACKUP #================================================= @@ -65,6 +59,18 @@ ynh_psql_dump_db --database="$db_name" > db.sql ynh_backup --src_path="/etc/logrotate.d/$app" +#================================================= +# BACKUP THE POSTGRESQL DATABASE +#================================================= +ynh_print_info --message="Backing up the PostgreSQL database..." + +if [ $database == "pgsql" ] +then + ynh_psql_dump_db --database="$db_name" > db.sql +else + ynh_mysql_dump_db --database="$db_name" > db.sql +fi + #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/install b/scripts/install index 9f6fcb3..733c84b 100755 --- a/scripts/install +++ b/scripts/install @@ -23,6 +23,7 @@ ynh_abort_if_errors domain=$YNH_APP_ARG_DOMAIN path_url=$YNH_APP_ARG_PATH is_public=$YNH_APP_ARG_IS_PUBLIC +database=$YNH_APP_ARG_DATABASE timezone="$(cat /etc/timezone)" app=$YNH_APP_INSTANCE_NAME @@ -45,24 +46,20 @@ ynh_script_progression --message="Storing installation settings..." --weight=1 ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url +ynh_app_setting_set --app=$app --key=database --value=$database #================================================= # INSTALL DEPENDENCIES #================================================= ynh_script_progression --message="Installing dependencies..." --weight=20 +if [ $database == "pgsql" ] +then + pkg_dependencies="$pkg_dependencies pgsql_pkg_dependencies" +fi + ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies -#================================================= -# CREATE A POSTGRESQL DATABASE -#================================================= -ynh_script_progression --message="Creating a PostgreSQL database..." --weight=2 - -db_name=$(ynh_sanitize_dbid --db_name=$app) -ynh_app_setting_set --app=$app --key=db_name --value=$db_name -ynh_psql_test_if_first_run -ynh_psql_setup_db --db_user=$db_name --db_name=$db_name - #================================================= # CREATE DEDICATED USER #================================================= @@ -71,6 +68,22 @@ ynh_script_progression --message="Configuring system user..." --weight=1 # Create a system user ynh_system_user_create --username=$app --home_dir="$final_path" +#================================================= +# CREATE A POSTGRESQL DATABASE +#================================================= +ynh_script_progression --message="Creating a PostgreSQL database..." --weight=2 + +db_name=$(ynh_sanitize_dbid --db_name=$app) +db_user=$db_name +ynh_app_setting_set --app=$app --key=db_name --value=$db_name +if [ $database == "pgsql" ] +then + ynh_psql_test_if_first_run + ynh_psql_setup_db --db_user=$db_user --db_name=$db_name +else + ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name +fi + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= @@ -105,7 +118,7 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= ynh_script_progression --message="Configuring Galette..." --weight=1 -ynh_add_config --template="../conf/config.inc.php.dist" --destination="$final_path/galette/config/config.inc.php" +ynh_add_config --template="../conf/config.inc.php.$database" --destination="$final_path/galette/config/config.inc.php" #================================================= # GENERIC FINALIZATION diff --git a/scripts/remove b/scripts/remove index 08bd945..6e43901 100755 --- a/scripts/remove +++ b/scripts/remove @@ -21,14 +21,22 @@ port=$(ynh_app_setting_get --app=$app --key=port) db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name final_path=$(ynh_app_setting_get --app=$app --key=final_path) +database=$(ynh_app_setting_get --app=$app --key=database) +#================================================= +# STANDARD REMOVE #================================================= # REMOVE THE POSTGRESQL DATABASE #================================================= ynh_script_progression --message="Removing the PostgreSQL database..." --weight=2 # Remove a database if it exists, along with the associated user -ynh_psql_remove_db --db_user=$db_user --db_name=$db_name +if [ $database == "pgsql" ] +then + ynh_psql_remove_db --db_user=$db_user --db_name=$db_name +else + ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name +fi #================================================= # REMOVE DEPENDENCIES diff --git a/scripts/restore b/scripts/restore index 684bfe4..a7ac755 100644 --- a/scripts/restore +++ b/scripts/restore @@ -29,8 +29,8 @@ path_url=$(ynh_app_setting_get --app=$app --key=path) final_path=$(ynh_app_setting_get --app=$app --key=final_path) db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name -db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +database=$(ynh_app_setting_get --app=$app --key=database) timezone="$(cat /etc/timezone)" #================================================= @@ -90,9 +90,17 @@ ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies #================================================= ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=6 -ynh_psql_test_if_first_run -ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd -ynh_psql_execute_file_as_root --file="./db.sql" --database=$db_name +if [ $database == "pgsql" ] +then + db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) + ynh_psql_test_if_first_run + ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd + ynh_psql_execute_file_as_root --file="./db.sql" --database=$db_name +else + db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) + ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd + ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql +fi #================================================= # RESTORE USER RIGHTS diff --git a/scripts/upgrade b/scripts/upgrade index c45d35c..31f60d2 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -21,8 +21,8 @@ path_url=$(ynh_app_setting_get --app=$app --key=path) final_path=$(ynh_app_setting_get --app=$app --key=final_path) db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name -db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +database=$(ynh_app_setting_get --app=$app --key=database) timezone="$(cat /etc/timezone)" #=================================================