From 09b961981b11ee4855e4782def7179cd6907d175 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 11:33:01 +0100 Subject: [PATCH 1/8] Fix linter warnings --- check_process | 13 -------- manifest.json | 2 +- scripts/install | 79 +++++++++---------------------------------------- 3 files changed, 15 insertions(+), 79 deletions(-) diff --git a/check_process b/check_process index afc2d18..222873f 100644 --- a/check_process +++ b/check_process @@ -27,19 +27,6 @@ incorrect_path=1 port_already_use=0 change_url=1 -;;; Levels - Level 1=auto - Level 2=auto - Level 3=auto -# Level 4: If the app supports LDAP and SSOwat, turn level 4 to '1' and add a link to an issue or a part of your code to show it. -# If the app does not use LDAP nor SSOwat, and can't use them, turn level 4 to 'na' and explain as well. - Level 4=0 - Level 5=auto - Level 6=auto - Level 7=auto - Level 8=0 - Level 9=0 - Level 10=0 ;;; Options Email= Notification=none diff --git a/manifest.json b/manifest.json index 214c967..a93e942 100644 --- a/manifest.json +++ b/manifest.json @@ -15,7 +15,7 @@ "url": "https://miaou.org" }, "requirements": { - "yunohost": ">= 3.4" + "yunohost": ">= 3.8.1" }, "multi_instance": true, "services": [ diff --git a/scripts/install b/scripts/install index dd98536..6a6c4d7 100755 --- a/scripts/install +++ b/scripts/install @@ -31,38 +31,23 @@ is_public=$YNH_APP_ARG_IS_PUBLIC language=$YNH_APP_ARG_LANGUAGE password=$YNH_APP_ARG_PASSWORD -### If it's a multi-instance app, meaning it can be installed several times independently -### The id of the app as stated in the manifest is available as $YNH_APP_ID -### The instance number is available as $YNH_APP_INSTANCE_NUMBER (equals "1", "2", ...) -### The app instance name is available as $YNH_APP_INSTANCE_NAME -### - the first time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample -### - the second time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample__2 -### - ynhexample__{N} for the subsequent installations, with N=3,4, ... -### The app instance name is probably what interests you most, since this is -### guaranteed to be unique. This is a good unique identifier to define installation path, -### db names, ... app=$YNH_APP_INSTANCE_NAME #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= -ynh_print_info "Validating installation parameters..." +ynh_script_progression --message="Validating installation parameters..." -### If the app uses nginx as web server (written in HTML/PHP in most cases), the final path should be "/var/www/$app". -### If the app provides an internal web server (or uses another application server such as uwsgi), the final path should be "/opt/yunohost/$app" final_path=/var/www/$app test ! -e "$final_path" || ynh_die "This path already contains a folder" -# Normalize the url path syntax -path_url=$(ynh_normalize_url_path $path_url) - # Register (book) web path ynh_webpath_register $app $domain $path_url #================================================= # STORE SETTINGS FROM MANIFEST #================================================= -ynh_print_info "Storing installation settings..." +ynh_script_progression --message="Storing installation settings..." ynh_app_setting_set $app domain $domain ynh_app_setting_set $app path $path_url @@ -75,7 +60,7 @@ ynh_app_setting_set $app language $language #================================================= # FIND AND OPEN A PORT #================================================= -ynh_print_info "Configuring firewall..." +ynh_script_progression --message="Configuring firewall..." ### Use these lines if you have to open a port for the application ### `ynh_find_port` will find the first available port starting from the given port. @@ -91,7 +76,7 @@ ynh_print_info "Configuring firewall..." #================================================= # INSTALL DEPENDENCIES #================================================= -ynh_print_info "Installing dependencies..." +ynh_script_progression --message="Installing dependencies..." ### `ynh_install_app_dependencies` allows you to add any "apt" dependencies to the package. ### Those deb packages will be installed as dependencies of this package. @@ -105,16 +90,7 @@ ynh_print_info "Installing dependencies..." #================================================= # CREATE A MYSQL DATABASE #================================================= -ynh_print_info "Creating a MySQL database..." - -### Use these lines if you need a database for the application. -### `ynh_mysql_setup_db` will create a database, an associated user and a ramdom password. -### The password will be stored as 'mysqlpwd' into the app settings, -### and will be available as $db_pwd -### If you're not using these lines: -### - Remove the section "BACKUP THE MYSQL DATABASE" in the backup script -### - Remove also the section "REMOVE THE MYSQL DATABASE" in the remove script -### - As well as the section "RESTORE THE MYSQL DATABASE" in the restore script +ynh_script_progression --message="Creating a MySQL database..." db_name=$(ynh_sanitize_dbid $app) db_user=$db_name @@ -124,11 +100,7 @@ ynh_mysql_setup_db $db_user $db_name #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= -ynh_print_info "Setting up source files..." - -### `ynh_setup_source` is used to install an app from a zip or tar.gz file, -### downloaded from an upstream source, like a git repository. -### `ynh_setup_source` use the file conf/app.src +ynh_script_progression --message="Setting up source files..." ynh_app_setting_set $app final_path $final_path # Download, check integrity, uncompress and patch the source from app.src @@ -137,9 +109,7 @@ ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= -ynh_print_info "Configuring nginx web server..." - -### `ynh_add_nginx_config` will use the file conf/nginx.conf +ynh_script_progression --message="Configuring nginx web server..." # Create a dedicated nginx config ynh_add_nginx_config @@ -147,7 +117,7 @@ ynh_add_nginx_config #================================================= # CREATE DEDICATED USER #================================================= -ynh_print_info "Configuring system user..." +ynh_script_progression --message="Configuring system user..." # Create a system user ynh_system_user_create $app @@ -155,32 +125,15 @@ ynh_system_user_create $app #================================================= # PHP-FPM CONFIGURATION #================================================= -ynh_print_info "Configuring php-fpm..." - -### `ynh_add_fpm_config` is used to set up a PHP config. -### You can remove it if your app doesn't use PHP. -### `ynh_add_fpm_config` will use the files conf/php-fpm.conf and conf/php-fpm.ini -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script -### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script -### With the reload at the end of the script. -### - And the section "PHP-FPM CONFIGURATION" in the upgrade script +ynh_script_progression --message="Configuring php-fpm..." # Create a dedicated php-fpm config ynh_add_fpm_config -#================================================= -# SPECIFIC SETUP -#================================================= -# ... -#================================================= - #================================================= # SETUP SYSTEMD #================================================= -ynh_print_info "Configuring a systemd service..." +ynh_script_progression --message="Configuring a systemd service..." ### `ynh_systemd_config` is used to configure a systemd script for an app. ### It can be used for apps that use sysvinit (with adaptation) or systemd. @@ -261,10 +214,6 @@ fi # SECURE FILES AND DIRECTORIES #================================================= -### For security reason, any app should set the permissions to root: before anything else. -### Then, if write authorization is needed, any access should be given only to directories -### that really need such authorization. - # Set permissions to app files chown -R root: $final_path chown -R $app:$app $final_path #modif perso @@ -272,7 +221,7 @@ chown -R $app:$app $final_path #modif perso #================================================= # SETUP LOGROTATE #================================================= -ynh_print_info "Configuring log rotation..." +ynh_script_progression --message="Configuring log rotation..." ### `ynh_use_logrotate` is used to configure a logrotate configuration for the logs of this app. ### Use this helper only if there is effectively a log file for this app. @@ -304,7 +253,7 @@ ynh_print_info "Configuring log rotation..." #================================================= # SETUP SSOWAT #================================================= -ynh_print_info "Configuring SSOwat..." +ynh_script_progression --message="Configuring SSOwat..." # Make app public if necessary if [ $is_public -eq 1 ] @@ -316,7 +265,7 @@ fi #================================================= # RELOAD NGINX #================================================= -ynh_print_info "Reloading nginx web server..." +ynh_script_progression --message="Reloading nginx web server..." systemctl reload nginx @@ -324,4 +273,4 @@ systemctl reload nginx # END OF SCRIPT #================================================= -ynh_print_info "Installation of $app completed" +ynh_script_progression --message="Installation of $app completed" From 040f7d95f65f6aacfec7f906aa502a28d64d5d2f Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 11:54:33 +0100 Subject: [PATCH 2/8] Upgrade to php7.3 --- README.md | 22 ++------ README_fr.md | 33 ++++------- check_process | 1 - conf/nginx.conf | 4 +- conf/php-fpm.conf | 2 +- conf/systemd.service | 13 ----- scripts/_common.sh | 8 +++ scripts/backup | 47 ++++------------ scripts/change_url | 10 +--- scripts/install | 129 ++++--------------------------------------- scripts/remove | 81 ++++----------------------- scripts/restore | 67 +++++----------------- scripts/upgrade | 71 ++++-------------------- 13 files changed, 84 insertions(+), 404 deletions(-) delete mode 100644 conf/systemd.service diff --git a/README.md b/README.md index 785fdcb..7b13fe3 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,7 @@ # BlogoText for YunoHost -![blogotext_logo](sources/images/blogotext_logo.png) - [ -![](https://dash.yunohost.org/integration/blogotext.svg) -![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) -![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg) -](https://dash.yunohost.org/appci/app/blogotext) - +![](https://dash.yunohost.org/integration/blogotext.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg)](https://dash.yunohost.org/appci/app/blogotext) [![Install BlogoText with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=blogotext) *[Lire ce readme en français.](./README_fr.md)* @@ -42,14 +36,13 @@ How to configure this app: by the admin panel `https://domain.tld/admin`. #### Multi-users support -Are LDAP and HTTP auth supported? no -Can the app be used by multiple users? no + * Are LDAP and HTTP auth supported? no + * Can the app be used by multiple users? no #### Supported architectures -* x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/blogotext%20%28Community%29.svg)](https://ci-apps.yunohost.org/ci/apps/blogotext/) +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/blogotext%20%28Community%29.svg)](https://ci-apps.yunohost.org/ci/apps/blogotext/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/blogotext%20%28Community%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/blogotext/) -* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/blogotext%20%28Community%29.svg)](https://ci-stretch.nohost.me/ci/apps/blogotext/) ## Limitations @@ -59,9 +52,6 @@ Can the app be used by multiple users? no * Other information you would add about this application -**More information on the documentation page:** -https://yunohost.org/packaging_apps - ## Links * Report a bug: https://github.com/YunoHost-Apps/BlogoText_ynh/issues @@ -70,10 +60,8 @@ https://yunohost.org/packaging_apps --- -Developers info ----------------- +## Developers info -**Only if you want to use a testing branch for coding, instead of merging directly into master.** Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/BlogoText_ynh/tree/testing). To try the testing branch, please proceed like that. diff --git a/README_fr.md b/README_fr.md index 077015f..7a8ea4f 100644 --- a/README_fr.md +++ b/README_fr.md @@ -2,12 +2,7 @@ ![blogotext_logo](sources/images/blogotext_logo.png) -[ -![](https://dash.yunohost.org/integration/blogotext.svg) -![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) -![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg) -](https://dash.yunohost.org/appci/app/blogotext) - +[![](https://dash.yunohost.org/integration/blogotext.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg)](https://dash.yunohost.org/appci/app/blogotext) [![Install BlogoText with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=blogotext) *[Read this readme in english.](./README.md)* @@ -19,7 +14,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour Ceci est BlogoText, un moteur de blog léger. -**Version incluse:** 3.7.6 +**Version incluse :** 3.7.6 ## Captures d'écran @@ -35,21 +30,20 @@ Comment configurer cette application: via le panneau d'administration `https://d ## Documentation - * Documentation officielle: https://github.com/BlogoText/blogotext/wiki - * Documentation YunoHost: https://yunohost.org/#/app_blogotext + * Documentation officielle : https://github.com/BlogoText/blogotext/wiki + * Documentation YunoHost : https://yunohost.org/#/app_blogotext ## Caractéristiques spécifiques YunoHost #### Support multi-utilisateurs -L'authentification LDAP et HTTP est-elle prise en charge? non -L'application peut-elle être utilisée par plusieurs utilisateurs? non + * L'authentification LDAP et HTTP est-elle prise en charge? non + * L'application peut-elle être utilisée par plusieurs utilisateurs? non #### Supported architectures -* x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/blogotext%20%28Community%29.svg)](https://ci-apps.yunohost.org/ci/apps/blogotext/) +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/blogotext%20%28Community%29.svg)](https://ci-apps.yunohost.org/ci/apps/blogotext/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/blogotext%20%28Community%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/blogotext/) -* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/blogotext%20%28Community%29.svg)](https://ci-stretch.nohost.me/ci/apps/blogotext/) ## Limitations @@ -59,21 +53,16 @@ L'application peut-elle être utilisée par plusieurs utilisateurs? non * Autres informations à ajouter sur cette application -**Plus d'informations sur la page de documentation:** -https://yunohost.org/packaging_apps - ## Links - * Signaler un bug: https://github.com/YunoHost-Apps/BlogoText_ynh/issues - * Site de l'application: https://blogotext.org/ - * Site web YunoHost: https://yunohost.org/ + * Signaler un bug : https://github.com/YunoHost-Apps/BlogoText_ynh/issues + * Site de l'application : https://blogotext.org/ + * Site web YunoHost : https://yunohost.org/ --- -Informations pour les développeurs ----------------- +## Informations pour les développeurs -**Seulement si vous voulez utiliser une branche de test pour le codage, au lieu de fusionner directement dans la banche principale.** Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/BlogoText_ynh/tree/testing). Pour essayer la branche testing, procédez comme suit. diff --git a/check_process b/check_process index 222873f..d000ab3 100644 --- a/check_process +++ b/check_process @@ -24,7 +24,6 @@ upgrade=1 from_commit=e49200ad7f98acba70737dc7db314c51a2a07802 backup_restore=1 multi_instance=1 - incorrect_path=1 port_already_use=0 change_url=1 ;;; Options diff --git a/conf/nginx.conf b/conf/nginx.conf index f2277ea..556b622 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -9,7 +9,6 @@ location __PATH__/ { rewrite ^ https://$server_name$request_uri? permanent; } -### Example PHP configuration (remove it if not used) index index.php; # Common parameter to increase upload size limit in conjunction with dedicated php-fpm file @@ -18,7 +17,7 @@ location __PATH__/ { try_files $uri $uri/ index.php; location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_pass unix:/var/run/php/php7.0-fpm-__NAME__.sock; + fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; fastcgi_index index.php; include fastcgi_params; @@ -26,7 +25,6 @@ location __PATH__/ { fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $request_filename; } -### End of PHP configuration part # Include SSOWAT user panel. include conf.d/yunohost_panel.conf.inc; diff --git a/conf/php-fpm.conf b/conf/php-fpm.conf index ab5dca9..ab1a471 100644 --- a/conf/php-fpm.conf +++ b/conf/php-fpm.conf @@ -33,7 +33,7 @@ group = __USER__ ; (IPv6 and IPv4-mapped) on a specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. -listen = /var/run/php/php7.0-fpm-__NAMETOCHANGE__.sock +listen = /var/run/php/php__PHPVERSION__-fpm-__NAMETOCHANGE__.sock ; Set listen(2) backlog. ; Default Value: 511 (-1 on FreeBSD and OpenBSD) diff --git a/conf/systemd.service b/conf/systemd.service deleted file mode 100644 index 76cdf64..0000000 --- a/conf/systemd.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Small description of the service -After=network.target - -[Service] -Type=simple -User=__APP__ -Group=__APP__ -WorkingDirectory=__FINALPATH__/ -ExecStart=__FINALPATH__/script >> /var/log/__APP__/__APP__.log 2>&1 - -[Install] -WantedBy=multi-user.target diff --git a/scripts/_common.sh b/scripts/_common.sh index b905339..96277d7 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -1,5 +1,13 @@ #!/bin/bash +#================================================= +# COMMON VARIABLES +#================================================= + +YNH_PHP_VERSION="7.3" + +extra_php_dependencies="php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-curl" + #================================================= # PERSONAL HELPERS #================================================= diff --git a/scripts/backup b/scripts/backup index 9e175ac..dc70a19 100755 --- a/scripts/backup +++ b/scripts/backup @@ -6,7 +6,6 @@ # IMPORT GENERIC HELPERS #================================================= -#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers @@ -14,11 +13,6 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { - ### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script ynh_abort_if_errors #================================================= @@ -31,58 +25,37 @@ app=$YNH_APP_INSTANCE_NAME final_path=$(ynh_app_setting_get $app final_path) domain=$(ynh_app_setting_get $app domain) db_name=$(ynh_app_setting_get $app db_name) +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= -# STANDARD BACKUP STEPS +# DECLARE DATA AND CONF FILES TO BACKUP +#================================================= +ynh_print_info --message="Declaring files to be backed up..." + #================================================= # BACKUP THE APP MAIN DIR #================================================= -ynh_print_info "Backing up the main app directory..." -ynh_backup "$final_path" +ynh_backup --src_path="$final_path" #================================================= # BACKUP THE NGINX CONFIGURATION #================================================= -ynh_print_info "Backing up nginx web server configuration..." -ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" +ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # BACKUP THE PHP-FPM CONFIGURATION #================================================= -ynh_print_info "Backing up php-fpm configuration..." -ynh_backup "/etc/php/7.0/fpm/pool.d/$app.conf" +ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" #================================================= # BACKUP THE MYSQL DATABASE #================================================= -ynh_print_info "Backing up the MySQL database..." +ynh_print_info --message="Backing up the MySQL database..." -ynh_mysql_dump_db "$db_name" > db.sql - -#================================================= -# SPECIFIC BACKUP -#================================================= -# BACKUP LOGROTATE -#================================================= -ynh_print_info "Backing up logrotate configuration..." - -#ynh_backup "/etc/logrotate.d/$app" - -#================================================= -# BACKUP SYSTEMD -#================================================= -ynh_print_info "Backing up systemd configuration..." - -#ynh_backup "/etc/systemd/system/$app.service" - -#================================================= -# BACKUP A CRON FILE -#================================================= - -#ynh_backup "/etc/cron.d/$app" +ynh_mysql_dump_db --database="$db_name" > db.sql #================================================= # END OF SCRIPT diff --git a/scripts/change_url b/scripts/change_url index 8828dbf..5c4b4cd 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -29,10 +29,6 @@ ynh_print_info "Loading installation settings..." # Needed for helper "ynh_add_nginx_config" final_path=$(ynh_app_setting_get $app final_path) -# Add settings here as needed by your application -#db_name=$(ynh_app_setting_get "$app" db_name) -#db_pwd=$(ynh_app_setting_get $app db_pwd) - #================================================= # CHECK THE SYNTAX OF THE PATHS #================================================= @@ -92,12 +88,8 @@ fi #================================================= # SPECIFIC MODIFICATIONS #================================================= -# ... -#================================================= -# ========= modif perso ======== -ynh_replace_string "$old_domain$old_path" "$new_domain$new_path" "$final_path/config/settings.php" -# ========= modif perso ======== +ynh_replace_string --match_string="$old_domain$old_path" --replace_string="$new_domain$new_path" --target_file="$final_path/config/settings.php" #================================================= # GENERIC FINALISATION diff --git a/scripts/install b/scripts/install index 6a6c4d7..7c7e65e 100755 --- a/scripts/install +++ b/scripts/install @@ -13,11 +13,6 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { - ### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script ynh_abort_if_errors #================================================= @@ -55,38 +50,6 @@ ynh_app_setting_set $app admin $admin ynh_app_setting_set $app is_public $is_public ynh_app_setting_set $app language $language -#================================================= -# STANDARD MODIFICATIONS -#================================================= -# FIND AND OPEN A PORT -#================================================= -ynh_script_progression --message="Configuring firewall..." - -### Use these lines if you have to open a port for the application -### `ynh_find_port` will find the first available port starting from the given port. -### If you're not using these lines: -### - Remove the section "CLOSE A PORT" in the remove script - -# Find a free port -#port=$(ynh_find_port 8095) -# Open this port -#ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port -#ynh_app_setting_set $app port $port - -#================================================= -# INSTALL DEPENDENCIES -#================================================= -ynh_script_progression --message="Installing dependencies..." - -### `ynh_install_app_dependencies` allows you to add any "apt" dependencies to the package. -### Those deb packages will be installed as dependencies of this package. -### If you're not using this helper: -### - Remove the section "REMOVE DEPENDENCIES" in the remove script -### - As well as the section "REINSTALL DEPENDENCIES" in the restore script -### - And the section "UPGRADE DEPENDENCIES" in the upgrade script - -#ynh_install_app_dependencies deb1 deb2 - #================================================= # CREATE A MYSQL DATABASE #================================================= @@ -94,8 +57,8 @@ ynh_script_progression --message="Creating a MySQL database..." db_name=$(ynh_sanitize_dbid $app) db_user=$db_name -ynh_app_setting_set $app db_name $db_name -ynh_mysql_setup_db $db_user $db_name +ynh_app_setting_set --app=$app --key=db_name --value=$db_name +ynh_mysql_setup_db --db_user=$db_name --db_name=$db_name #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -109,7 +72,7 @@ ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Configuring nginx web server..." +ynh_script_progression --message="Configuring NGINXweb server..." # Create a dedicated nginx config ynh_add_nginx_config @@ -128,26 +91,8 @@ ynh_system_user_create $app ynh_script_progression --message="Configuring php-fpm..." # Create a dedicated php-fpm config -ynh_add_fpm_config - -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Configuring a systemd service..." - -### `ynh_systemd_config` is used to configure a systemd script for an app. -### It can be used for apps that use sysvinit (with adaptation) or systemd. -### Have a look at the app to be sure this app needs a systemd script. -### `ynh_systemd_config` will use the file conf/systemd.service -### If you're not using these lines: -### - You can remove those files in conf/. -### - Remove the section "BACKUP SYSTEMD" in the backup script -### - Remove also the section "STOP AND REMOVE SERVICE" in the remove script -### - As well as the section "RESTORE SYSTEMD" in the restore script -### - And the section "SETUP SYSTEMD" in the upgrade script - -# Create a dedicated systemd config -#ynh_add_systemd_config +ynh_add_fpm_config --package="$extra_php_dependencies" +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= # SETUP APPLICATION WITH CURL @@ -188,26 +133,6 @@ then ynh_app_setting_delete $app skipped_uris fi -#================================================= -# MODIFY A CONFIG FILE -#================================================= - -### `ynh_replace_string` is used to replace a string in a file. -### (It's compatible with sed regular expressions syntax) - -#ynh_replace_string "match_string" "replace_string" "$final_path/CONFIG_FILE" - -#================================================= -# STORE THE CONFIG FILE CHECKSUM -#================================================= - -### `ynh_store_file_checksum` is used to store the checksum of a file. -### That way, during the upgrade script, by using `ynh_backup_if_checksum_is_different`, -### you can make a backup of this file before modifying it again if the admin had modified it. - -# Calculate and store the config file checksum into the app settings -#ynh_store_file_checksum "$final_path/CONFIG_FILE" - #================================================= # GENERIC FINALIZATION #================================================= @@ -215,57 +140,25 @@ fi #================================================= # Set permissions to app files -chown -R root: $final_path -chown -R $app:$app $final_path #modif perso - -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Configuring log rotation..." - -### `ynh_use_logrotate` is used to configure a logrotate configuration for the logs of this app. -### Use this helper only if there is effectively a log file for this app. -### If you're not using this helper: -### - Remove the section "BACKUP LOGROTATE" in the backup script -### - Remove also the section "REMOVE LOGROTATE CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE LOGROTATE CONFIGURATION" in the restore script -### - And the section "SETUP LOGROTATE" in the upgrade script - -# Use logrotate to manage application logfile(s) -#ynh_use_logrotate - -#================================================= -# ADVERTISE SERVICE IN ADMIN PANEL -#================================================= - -### `yunohost service add` is a CLI yunohost command to add a service in the admin panel. -### You'll find the service in the 'services' section of YunoHost admin panel. -### This CLI command would be useless if the app does not have any services (systemd or sysvinit) -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "REMOVE SERVICE FROM ADMIN PANEL" in the remove script -### - As well as the section "ADVERTISE SERVICE IN ADMIN PANEL" in the restore script - -#yunohost service add $app --log "/var/log/$app/$app.log" -# if using yunohost version 3.2 or more in the 'manifest.json', a description can be added -#yunohost service add $app --description "$app daemon for XXX" --log "/var/log/$app/$app.log" +chown -R $app: $final_path #modif perso #================================================= # SETUP SSOWAT #================================================= ynh_script_progression --message="Configuring SSOwat..." -# Make app public if necessary +# Make app public if necessary or protect it if [ $is_public -eq 1 ] then - # unprotected_uris allows SSO credentials to be passed anyway. - ynh_app_setting_set $app unprotected_uris "/" + # Everyone can access the app. + # The "main" permission is automatically created before the install script. + ynh_permission_update --permission "main" --add "visitors" fi #================================================= # RELOAD NGINX #================================================= -ynh_script_progression --message="Reloading nginx web server..." +ynh_script_progression --message="Reloading NGINX web server..." systemctl reload nginx diff --git a/scripts/remove b/scripts/remove index b119b2a..659a91f 100755 --- a/scripts/remove +++ b/scripts/remove @@ -12,7 +12,7 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_print_info "Loading installation settings..." +ynh_script_progression --message="Loading installation settings..." app=$YNH_APP_INSTANCE_NAME @@ -28,49 +28,32 @@ final_path=$(ynh_app_setting_get $app final_path) # REMOVE SERVICE FROM ADMIN PANEL #================================================= -# Remove a service from the admin panel, added by `yunohost service add` if yunohost service status $app >/dev/null 2>&1 then ynh_print_info "Removing $app service" yunohost service remove $app fi -#================================================= -# STOP AND REMOVE SERVICE -#================================================= -ynh_print_info "Stopping and removing the systemd service" - -# Remove the dedicated systemd config -#ynh_remove_systemd_config - #================================================= # REMOVE THE MYSQL DATABASE #================================================= -ynh_print_info "Removing the MySQL database" +ynh_script_progression --message="Removing the MySQL database" # Remove a database if it exists, along with the associated user -ynh_mysql_remove_db $db_user $db_name - -#================================================= -# REMOVE DEPENDENCIES -#================================================= -ynh_print_info "Removing dependencies" - -# Remove metapackage and its dependencies -#ynh_remove_app_dependencies +ynh_mysql_remove_db --db_user=$db_name --db_name=$db_name #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_print_info "Removing app main directory" +ynh_script_progression --message="Removing app main directory" # Remove the app directory securely -ynh_secure_remove "$final_path" +ynh_secure_remove --file="$final_path" #================================================= # REMOVE NGINX CONFIGURATION #================================================= -ynh_print_info "Removing nginx web server configuration" +ynh_script_progression --message="Removing NGINX web server configuration" # Remove the dedicated nginx config ynh_remove_nginx_config @@ -78,65 +61,23 @@ ynh_remove_nginx_config #================================================= # REMOVE PHP-FPM CONFIGURATION #================================================= -ynh_print_info "Removing php-fpm configuration" +ynh_script_progression --message="Removing PHP-FPM configuration" -# Remove the dedicated php-fpm config +# Remove the dedicated PHP-FPM config ynh_remove_fpm_config -#================================================= -# REMOVE LOGROTATE CONFIGURATION -#================================================= -ynh_print_info "Removing logrotate configuration" - -# Remove the app-specific logrotate config -#ynh_remove_logrotate - -#================================================= -# CLOSE A PORT -#================================================= - -#if yunohost firewall list | grep -q "\- $port$" -#then -# ynh_print_info "Closing port $port" -# ynh_exec_warn_less yunohost firewall disallow TCP $port -#fi - -# close port if it was previously opened -# https://github.com/YunoHost-Apps/blogotext_ynh/pull/13 -port=$(ynh_app_setting_get $app port) -if yunohost firewall list | grep -q "\- $port$" -then - ynh_print_info "Closing port $port" - ynh_exec_warn_less yunohost firewall disallow TCP $port -fi - -#================================================= -# SPECIFIC REMOVE -#================================================= -# REMOVE THE CRON FILE -#================================================= - -# Remove a cron file -#ynh_secure_remove "/etc/cron.d/$app" - -# Remove a directory securely -#ynh_secure_remove "/etc/$app/" - -# Remove the log files -#ynh_secure_remove "/var/log/$app/" - #================================================= # GENERIC FINALIZATION #================================================= # REMOVE DEDICATED USER #================================================= -ynh_print_info "Removing the dedicated system user" +ynh_script_progression --message="Removing the dedicated system user" # Delete a system user -ynh_system_user_delete $app +ynh_system_user_delete --username=$app #================================================= # END OF SCRIPT #================================================= -ynh_print_info "Removal of $app completed" +ynh_script_progression --message="Removal of $app completed" diff --git a/scripts/restore b/scripts/restore index ba6575c..32846f4 100755 --- a/scripts/restore +++ b/scripts/restore @@ -6,7 +6,6 @@ # IMPORT GENERIC HELPERS #================================================= -#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers @@ -14,17 +13,12 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { - #### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= -ynh_print_info "Loading settings..." +ynh_script_progression --message="Loading settings..." app=$YNH_APP_INSTANCE_NAME @@ -32,11 +26,12 @@ domain=$(ynh_app_setting_get $app domain) path_url=$(ynh_app_setting_get $app path) final_path=$(ynh_app_setting_get $app final_path) db_name=$(ynh_app_setting_get $app db_name) +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= -ynh_print_info "Validating restoration parameters..." +ynh_script_progression --message="Validating restoration parameters..." ynh_webpath_available $domain $path_url \ || ynh_die "Path not available: ${domain}${path_url}" @@ -54,14 +49,14 @@ ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # RESTORE THE APP MAIN DIR #================================================= -ynh_print_info "Restoring the app main directory..." +ynh_script_progression --message="Restoring the app main directory..." ynh_restore_file "$final_path" #================================================= # RECREATE THE DEDICATED USER #================================================= -ynh_print_info "Recreating the dedicated system user..." +ynh_script_progression --message="Recreating the dedicated system user..." # Create the dedicated user (if not existing) ynh_system_user_create $app @@ -71,72 +66,38 @@ ynh_system_user_create $app #================================================= # Restore permissions on app files -chown -R root: $final_path -chown -R $app:$app $final_path # modif perso +chown -R $app: $final_path #================================================= # RESTORE THE PHP-FPM CONFIGURATION #================================================= +ynh_script_progression --message="Reconfiguring PHP-FPM..." -ynh_restore_file "/etc/php/7.0/fpm/pool.d/$app.conf" +ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" -#================================================= -# SPECIFIC RESTORATION -#================================================= -# REINSTALL DEPENDENCIES -#================================================= -ynh_print_info "Reinstalling dependencies..." - -# Define and install dependencies -#ynh_install_app_dependencies deb1 deb2 +ynh_add_fpm_config --package="$extra_php_dependencies" #================================================= # RESTORE THE MYSQL DATABASE #================================================= -ynh_print_info "Restoring the MySQL database..." +ynh_script_progression --message="Restoring the MySQL database..." db_pwd=$(ynh_app_setting_get $app mysqlpwd) ynh_mysql_setup_db $db_name $db_name $db_pwd ynh_mysql_connect_as $db_name $db_pwd $db_name < ./db.sql -#================================================= -# RESTORE SYSTEMD -#================================================= -ynh_print_info "Restoring the systemd configuration..." - -#ynh_restore_file "/etc/systemd/system/$app.service" -#systemctl enable $app.service - -#================================================= -# ADVERTISE SERVICE IN ADMIN PANEL -#================================================= - -#yunohost service add $app --log "/var/log/$app/$app.log" - -#================================================= -# RESTORE THE CRON FILE -#================================================= - -#ynh_restore_file "/etc/cron.d/$app" - -#================================================= -# RESTORE THE LOGROTATE CONFIGURATION -#================================================= - -#ynh_restore_file "/etc/logrotate.d/$app" - #================================================= # GENERIC FINALIZATION #================================================= # RELOAD NGINX AND PHP-FPM #================================================= -ynh_print_info "Reloading nginx web server and php-fpm..." +ynh_script_progression --message="Reloading nginx web server and php-fpm..." -systemctl reload php7.0-fpm -systemctl reload nginx +ynh_systemd_action --service_name=php$phpversion-fpm --action=reload +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT #================================================= -ynh_print_info "Restoration completed for $app" +ynh_script_progression --message="Restoration completed for $app" diff --git a/scripts/upgrade b/scripts/upgrade index c317c5c..2564443 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -12,7 +12,7 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_print_info "Loading installation settings..." +ynh_script_progression --message="Loading installation settings..." app=$YNH_APP_INSTANCE_NAME @@ -27,7 +27,7 @@ db_name=$(ynh_app_setting_get $app db_name) #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= -ynh_print_info "Ensuring downward compatibility..." +ynh_script_progression --message="Ensuring downward compatibility..." # Fix is_public as a boolean value if [ "$is_public" = "Yes" ]; then @@ -53,7 +53,7 @@ fi #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= -ynh_print_info "Backing up the app before upgrading (may take a while)..." +ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." # Backup the current version of the app ynh_backup_before_upgrade @@ -64,19 +64,12 @@ ynh_clean_setup () { # Exit if an error occurs during the execution of the script ynh_abort_if_errors -#================================================= -# CHECK THE PATH -#================================================= - -# Normalize the URL path syntax -path_url=$(ynh_normalize_url_path $path_url) - #================================================= # STANDARD UPGRADE STEPS #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= -ynh_print_info "Upgrading source files..." +ynh_script_progression --message="Upgrading source files..." # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source "$final_path" @@ -84,22 +77,15 @@ ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= -ynh_print_info "Upgrading nginx web server configuration..." +ynh_script_progression --message="Upgrading nginx web server configuration..." # Create a dedicated nginx config ynh_add_nginx_config -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -ynh_print_info "Upgrading dependencies..." - -#ynh_install_app_dependencies deb1 deb2 - #================================================= # CREATE DEDICATED USER #================================================= -ynh_print_info "Making sure dedicated system user exists..." +ynh_script_progression --message="Making sure dedicated system user exists..." # Create a dedicated user (if not existing) ynh_system_user_create $app @@ -107,7 +93,7 @@ ynh_system_user_create $app #================================================= # PHP-FPM CONFIGURATION #================================================= -ynh_print_info "Upgrading php-fpm configuration..." +ynh_script_progression --message="Upgrading php-fpm configuration..." # Create a dedicated php-fpm config ynh_add_fpm_config @@ -115,30 +101,8 @@ ynh_add_fpm_config #================================================= # SPECIFIC UPGRADE #================================================= -# ... -#================================================= -### Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script. -### And create a backup of this file if the checksum is different. So the file will be backed up if the admin had modified it. ynh_backup_if_checksum_is_different "$final_path/CONFIG_FILE" -# Recalculate and store the checksum of the file for the next upgrade. -#ynh_store_file_checksum "$final_path/CONFIG_FILE" - -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_print_info "Upgrading logrotate configuration..." - -# Use logrotate to manage app-specific logfile(s) -#ynh_use_logrotate --non-append - -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_print_info "Upgrading systemd configuration..." - -# Create a dedicated systemd config -#ynh_add_systemd_config #================================================= # GENERIC FINALIZATION @@ -147,30 +111,17 @@ ynh_print_info "Upgrading systemd configuration..." #================================================= # Set permissions on app files -chown -R root: $final_path -chown -R $app:$app $final_path # modif perso - -#================================================= -# SETUP SSOWAT -#================================================= -ynh_print_info "Upgrading SSOwat configuration..." - -# Make app public if necessary -if [ $is_public -eq 1 ] -then - # unprotected_uris allows SSO credentials to be passed anyway - ynh_app_setting_set $app unprotected_uris "/" -fi +chown -R $app: $final_path #================================================= # RELOAD NGINX #================================================= -ynh_print_info "Reloading nginx web server..." +ynh_script_progression --message="Reloading nginx web server..." -systemctl reload nginx +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT #================================================= -ynh_print_info "Upgrade of $app completed" +ynh_script_progression --message="Upgrade of $app completed" From 86460924bc07262d835dc3c24a6972e6971b5b73 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 11:56:09 +0100 Subject: [PATCH 3/8] Fix --- scripts/remove | 1 - scripts/restore | 2 +- scripts/upgrade | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/remove b/scripts/remove index 659a91f..050bc8c 100755 --- a/scripts/remove +++ b/scripts/remove @@ -17,7 +17,6 @@ ynh_script_progression --message="Loading installation settings..." app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get $app domain) -#port=$(ynh_app_setting_get $app port) db_name=$(ynh_app_setting_get $app db_name) db_user=$db_name final_path=$(ynh_app_setting_get $app final_path) diff --git a/scripts/restore b/scripts/restore index 32846f4..90869dd 100755 --- a/scripts/restore +++ b/scripts/restore @@ -91,7 +91,7 @@ ynh_mysql_connect_as $db_name $db_pwd $db_name < ./db.sql #================================================= # RELOAD NGINX AND PHP-FPM #================================================= -ynh_script_progression --message="Reloading nginx web server and php-fpm..." +ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." ynh_systemd_action --service_name=php$phpversion-fpm --action=reload ynh_systemd_action --service_name=nginx --action=reload diff --git a/scripts/upgrade b/scripts/upgrade index 2564443..2edcf2f 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -116,7 +116,7 @@ chown -R $app: $final_path #================================================= # RELOAD NGINX #================================================= -ynh_script_progression --message="Reloading nginx web server..." +ynh_script_progression --message="Reloading NGINX web server..." ynh_systemd_action --service_name=nginx --action=reload From 1b3fd8b923b5cdab440a724ee416f61639088647 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 12:03:27 +0100 Subject: [PATCH 4/8] Fix --- scripts/install | 50 +++++++++++++++++-------------------------------- scripts/upgrade | 8 ++++---- 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/scripts/install b/scripts/install index 7c7e65e..4bd4f15 100755 --- a/scripts/install +++ b/scripts/install @@ -72,7 +72,7 @@ ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Configuring NGINXweb server..." +ynh_script_progression --message="Configuring NGINX web server..." # Create a dedicated nginx config ynh_add_nginx_config @@ -88,35 +88,31 @@ ynh_system_user_create $app #================================================= # PHP-FPM CONFIGURATION #================================================= -ynh_script_progression --message="Configuring php-fpm..." +ynh_script_progression --message="Configuring PHP-FPM..." -# Create a dedicated php-fpm config +# Create a dedicated PHP-FPM config ynh_add_fpm_config --package="$extra_php_dependencies" phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#================================================= +# SECURE FILES AND DIRECTORIES +#================================================= + +# Set permissions to app files +chown -R $app: $final_path #modif perso + #================================================= # SETUP APPLICATION WITH CURL #================================================= -### Use these lines only if the app installation needs to be finalized through -### web forms. We generally don't want to ask the final user, -### so we're going to use curl to automatically fill the fields and submit the -### forms. +# Set the app as temporarily public for cURL call +ynh_permission_update --permission "main" --add "visitors" -# Set right permissions for curl install -chown -R $app: $final_path +# Reload NGINX +ynh_systemd_action --service_name=nginx --action=reload -# Set the app as temporarily public for curl call -ynh_print_info "Configuring SSOwat..." -ynh_app_setting_set $app skipped_uris "/" -# Reload SSOwat config -yunohost app ssowatconf +ynh_script_progression --message="Finalizing installation..." -# Reload Nginx -systemctl reload nginx - -# Installation with curl -ynh_print_info "Finalizing installation..." #ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3" # =========== modif perso =========== #page 1 @@ -125,23 +121,13 @@ ynh_local_curl "/admin/install.php" "install_form_1_sended=1" "langue=$language" ynh_local_curl "/admin/install.php?s=2&l=$language" "identifiant=$admin" "mdp=$password" "racine=https://$domain$path_url/" "comm_defaut_status=1" "langue=$language" "install_form_2_sended=1" #page 3 ynh_local_curl "/admin/install.php?s=3&l=$language" "sgdb=mysql" "mysql_user=$db_user" "mysql_passwd=$db_pwd" "mysql_db=$db_name" "mysql_host=localhost" "langue=$language" "install_form_3_sended=1" -# =========== modif perso =========== # Remove the public access if [ $is_public -eq 0 ] then - ynh_app_setting_delete $app skipped_uris + ynh_permission_update --permission "main" --remove "visitors" fi -#================================================= -# GENERIC FINALIZATION -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions to app files -chown -R $app: $final_path #modif perso - #================================================= # SETUP SSOWAT #================================================= @@ -150,8 +136,6 @@ ynh_script_progression --message="Configuring SSOwat..." # Make app public if necessary or protect it if [ $is_public -eq 1 ] then - # Everyone can access the app. - # The "main" permission is automatically created before the install script. ynh_permission_update --permission "main" --add "visitors" fi @@ -160,7 +144,7 @@ fi #================================================= ynh_script_progression --message="Reloading NGINX web server..." -systemctl reload nginx +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT diff --git a/scripts/upgrade b/scripts/upgrade index 2edcf2f..28b3736 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -77,9 +77,9 @@ ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Upgrading nginx web server configuration..." +ynh_script_progression --message="Upgrading NGINX web server configuration..." -# Create a dedicated nginx config +# Create a dedicated NGINX config ynh_add_nginx_config #================================================= @@ -93,9 +93,9 @@ ynh_system_user_create $app #================================================= # PHP-FPM CONFIGURATION #================================================= -ynh_script_progression --message="Upgrading php-fpm configuration..." +ynh_script_progression --message="Upgrading PHP-FPM configuration..." -# Create a dedicated php-fpm config +# Create a dedicated PHP-FPM config ynh_add_fpm_config #================================================= From 94e9ddd4b811f51d3592ecaf07986ddb0e9af689 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 12:04:16 +0100 Subject: [PATCH 5/8] Update remove --- scripts/remove | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/scripts/remove b/scripts/remove index 050bc8c..3249deb 100755 --- a/scripts/remove +++ b/scripts/remove @@ -21,18 +21,6 @@ db_name=$(ynh_app_setting_get $app db_name) db_user=$db_name final_path=$(ynh_app_setting_get $app final_path) -#================================================= -# STANDARD REMOVE -#================================================= -# REMOVE SERVICE FROM ADMIN PANEL -#================================================= - -if yunohost service status $app >/dev/null 2>&1 -then - ynh_print_info "Removing $app service" - yunohost service remove $app -fi - #================================================= # REMOVE THE MYSQL DATABASE #================================================= From ffba837014d271dc1e8f20b737d8c420c63e72f2 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 12:13:16 +0100 Subject: [PATCH 6/8] Update install --- scripts/install | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/scripts/install b/scripts/install index 4bd4f15..38eb053 100755 --- a/scripts/install +++ b/scripts/install @@ -122,21 +122,15 @@ ynh_local_curl "/admin/install.php?s=2&l=$language" "identifiant=$admin" "mdp=$p #page 3 ynh_local_curl "/admin/install.php?s=3&l=$language" "sgdb=mysql" "mysql_user=$db_user" "mysql_passwd=$db_pwd" "mysql_db=$db_name" "mysql_host=localhost" "langue=$language" "install_form_3_sended=1" -# Remove the public access -if [ $is_public -eq 0 ] -then - ynh_permission_update --permission "main" --remove "visitors" -fi - #================================================= # SETUP SSOWAT #================================================= ynh_script_progression --message="Configuring SSOwat..." # Make app public if necessary or protect it -if [ $is_public -eq 1 ] +if [ $is_public -eq 0 ] then - ynh_permission_update --permission "main" --add "visitors" + ynh_permission_update --permission "main" --remove "visitors" fi #================================================= From 1ec4207bc0edaefd2f15fe4466c1184909bf7b9f Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 7 Dec 2020 12:20:23 +0100 Subject: [PATCH 7/8] Add image --- README.md | 5 ++--- README_fr.md | 4 +--- sources/images/blogotext_logo.png | Bin 6171 -> 0 bytes sources/images/blogotext_preview.png | Bin 18226 -> 0 bytes 4 files changed, 3 insertions(+), 6 deletions(-) delete mode 100644 sources/images/blogotext_logo.png delete mode 100644 sources/images/blogotext_preview.png diff --git a/README.md b/README.md index 7b13fe3..c2ee28e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # BlogoText for YunoHost -[ -![](https://dash.yunohost.org/integration/blogotext.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg)](https://dash.yunohost.org/appci/app/blogotext) +[![](https://dash.yunohost.org/integration/blogotext.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg)](https://dash.yunohost.org/appci/app/blogotext) [![Install BlogoText with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=blogotext) *[Lire ce readme en français.](./README_fr.md)* @@ -17,7 +16,7 @@ This is BlogoText, the lightweight Blog-Engine. ## Screenshots -![blogotext_preview](sources/images/blogotext_preview.png) +![blogotext_preview](https://raw.githubusercontent.com/BlogoText/blogotext/dev/preview.png) ## Demo diff --git a/README_fr.md b/README_fr.md index 7a8ea4f..13edeae 100644 --- a/README_fr.md +++ b/README_fr.md @@ -1,7 +1,5 @@ # BlogoText pour YunoHost -![blogotext_logo](sources/images/blogotext_logo.png) - [![](https://dash.yunohost.org/integration/blogotext.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/blogotext.maintain.svg)](https://dash.yunohost.org/appci/app/blogotext) [![Install BlogoText with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=blogotext) @@ -18,7 +16,7 @@ Ceci est BlogoText, un moteur de blog léger. ## Captures d'écran -![blogotext_preview](sources/images/blogotext_preview.png) +![blogotext_preview](https://raw.githubusercontent.com/BlogoText/blogotext/dev/preview.png) ## Démo diff --git a/sources/images/blogotext_logo.png b/sources/images/blogotext_logo.png deleted file mode 100644 index 9a6752f09567e0df530f175b070565ce19cdef1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6171 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 XO?8P(3O4{#eh^4eP7P55Hw*b6JgK{{ diff --git a/sources/images/blogotext_preview.png b/sources/images/blogotext_preview.png deleted file mode 100644 index c6668b0acbb452612f631083a0f3a6f1c9b1bcfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18226 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 Date: Mon, 7 Dec 2020 12:27:12 +0100 Subject: [PATCH 8/8] Fix --- README.md | 7 ++++--- README_fr.md | 9 +++++---- manifest.json | 15 ++++++++++----- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c2ee28e..a14e43b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ This is BlogoText, the lightweight Blog-Engine. ## Screenshots -![blogotext_preview](https://raw.githubusercontent.com/BlogoText/blogotext/dev/preview.png) +![](https://raw.githubusercontent.com/BlogoText/blogotext/dev/preview.png) ## Demo @@ -35,8 +35,8 @@ How to configure this app: by the admin panel `https://domain.tld/admin`. #### Multi-users support - * Are LDAP and HTTP auth supported? no - * Can the app be used by multiple users? no + * Are LDAP and HTTP auth supported? **No** + * Can the app be used by multiple users? **No** #### Supported architectures @@ -55,6 +55,7 @@ How to configure this app: by the admin panel `https://domain.tld/admin`. * Report a bug: https://github.com/YunoHost-Apps/BlogoText_ynh/issues * App website: https://blogotext.org/ + * Upstream app repository: https://github.com/BlogoText/blogotext * YunoHost website: https://yunohost.org/ --- diff --git a/README_fr.md b/README_fr.md index 13edeae..a941d24 100644 --- a/README_fr.md +++ b/README_fr.md @@ -16,7 +16,7 @@ Ceci est BlogoText, un moteur de blog léger. ## Captures d'écran -![blogotext_preview](https://raw.githubusercontent.com/BlogoText/blogotext/dev/preview.png) +![](https://raw.githubusercontent.com/BlogoText/blogotext/dev/preview.png) ## Démo @@ -29,14 +29,14 @@ Comment configurer cette application: via le panneau d'administration `https://d ## Documentation * Documentation officielle : https://github.com/BlogoText/blogotext/wiki - * Documentation YunoHost : https://yunohost.org/#/app_blogotext + * Documentation YunoHost : https://yunohost.org/#/app_blogotext_fr ## Caractéristiques spécifiques YunoHost #### Support multi-utilisateurs - * L'authentification LDAP et HTTP est-elle prise en charge? non - * L'application peut-elle être utilisée par plusieurs utilisateurs? non + * L'authentification LDAP et HTTP est-elle prise en charge ? **Non** + * L'application peut-elle être utilisée par plusieurs utilisateurs ? **Non** #### Supported architectures @@ -55,6 +55,7 @@ Comment configurer cette application: via le panneau d'administration `https://d * Signaler un bug : https://github.com/YunoHost-Apps/BlogoText_ynh/issues * Site de l'application : https://blogotext.org/ + * Dépôt de l'application principale : https://github.com/BlogoText/blogotext * Site web YunoHost : https://yunohost.org/ --- diff --git a/manifest.json b/manifest.json index a93e942..e3c4583 100644 --- a/manifest.json +++ b/manifest.json @@ -4,9 +4,9 @@ "packaging_format": 1, "description": { "en": "Lightweight Blog-Engine.", - "fr": "Un moteur de blog léger." + "fr": "Moteur de blog léger." }, - "version": "3.7.6~ynh2", + "version": "3.7.6~ynh3", "url": "https://blogotext.org/", "license": "MIT", "maintainer": { @@ -15,7 +15,7 @@ "url": "https://miaou.org" }, "requirements": { - "yunohost": ">= 3.8.1" + "yunohost": ">= 4.0.0" }, "multi_instance": true, "services": [ @@ -42,7 +42,7 @@ "fr": "Choisissez un chemin pour BlogoText" }, "example": "/blog", - "default": "/blog" + "default": "/blogotext" }, { "name": "admin", @@ -78,7 +78,12 @@ "ask": { "en": "Set the administrator password", "fr": "Définissez le mot de passe administrateur" - } + }, + "help": { + "en": "Use the help field to add an information for the admin about this question.", + "fr": "Utilisez le champ aide pour ajouter une information à l'intention de l'administrateur à propos de cette question." + }, + "example": "Choose a password" } ] }