From 345bcd4aa9a0298cccacf6161a3a444c2338c501 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 25 Nov 2020 14:30:08 +0100 Subject: [PATCH] Fix linter warning and cleaning --- README.md | 5 ++- manifest.json | 6 ++-- scripts/_common.sh | 13 ++++++++ scripts/backup | 1 - scripts/change_url | 23 ++++++-------- scripts/install | 21 ++++++------ scripts/remove | 14 ++------ scripts/restore | 11 +++---- scripts/upgrade | 37 +++++---------------- scripts/ynh_check_app_version_changed | 46 --------------------------- 10 files changed, 53 insertions(+), 124 deletions(-) delete mode 100644 scripts/ynh_check_app_version_changed diff --git a/README.md b/README.md index db8939d..780f054 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Can be run as Single User Blog or Multi User Instance. Each User can be limited from 1 to unlimited blogs. -**Shipped version:** v0.12.0 +**Shipped version:** 0.12.0 ## Important points to read before installing @@ -63,8 +63,7 @@ If User Mode is configured Multiple users, the app be used by multiple users --- -Developer info ----------------- +## Developer info Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/writefreely_ynh/tree/testing). diff --git a/manifest.json b/manifest.json index 96f06e9..f171ed9 100644 --- a/manifest.json +++ b/manifest.json @@ -18,7 +18,7 @@ "name": "yalh76" }], "requirements": { - "yunohost": ">= 3.5" + "yunohost": ">= 3.8.1" }, "multi_instance": true, "services": [ @@ -67,8 +67,8 @@ "name": "single_user", "type": "boolean", "ask": { - "en": "Choose if you want a Single User Blog ?", - "fr": "Souhaitez vous un blog pour un seul utilisateur?" + "en": "Choose if you want a Single User Blog?", + "fr": "Souhaitez vous un blog pour un seul utilisateur ?" }, "default": true } diff --git a/scripts/_common.sh b/scripts/_common.sh index eea5970..0a61e2f 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -15,6 +15,19 @@ # EXPERIMENTAL HELPERS #================================================= +# Execute a command as another user +# usage: ynh_exec_as USER COMMAND [ARG ...] +ynh_exec_as() { + local USER=$1 + shift 1 + + if [[ $USER = $(whoami) ]]; then + eval "$@" + else + sudo -u "$USER" "$@" + fi +} + #================================================= # FUTURE OFFICIAL HELPERS #================================================= diff --git a/scripts/backup b/scripts/backup index 63ac358..90d7600 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 diff --git a/scripts/change_url b/scripts/change_url index f96d983..6b930d5 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -29,15 +29,10 @@ ynh_script_progression --message="Loading installation settings..." # Needed for helper "ynh_add_nginx_config" final_path=$(ynh_app_setting_get --app=$app --key=final_path) -# Add settings here as needed by your application -#db_name=$(ynh_app_setting_get --app=$app --key=db_name) -#db_user=$db_name -#db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd) - #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= -ynh_script_progression --message="Backing up the app before changing its url (may take a while)..." +ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." # Backup the current version of the app ynh_backup_before_upgrade @@ -79,23 +74,23 @@ ynh_systemd_action --service_name=$app --action="stop" --log_path="systemd" --li #================================================= # MODIFY URL IN NGINX CONF #================================================= -ynh_script_progression --message="Updating nginx web server configuration..." +ynh_script_progression --message="Updating NGINX web server configuration..." nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf -# Change the path in the nginx config file +# Change the path in the NGINX config file if [ $change_path -eq 1 ] then - # Make a backup of the original nginx config file if modified + # Make a backup of the original NGINX config file if modified ynh_backup_if_checksum_is_different --file="$nginx_conf_path" - # Set global variables for nginx helper + # Set global variables for NGINX helper domain="$old_domain" path_url="$new_path" - # Create a dedicated nginx config + # Create a dedicated NGINX config ynh_add_nginx_config fi -# Change the domain for nginx +# Change the domain for NGINX if [ $change_domain -eq 1 ] then # Delete file checksum for the old conf file location @@ -131,12 +126,12 @@ ynh_store_file_checksum --file="$final_path/config.ini" ynh_script_progression --message="Starting a systemd service..." # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Serving on" +ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Serving on" #================================================= # 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 diff --git a/scripts/install b/scripts/install index b8f0e7c..76f98fb 100755 --- a/scripts/install +++ b/scripts/install @@ -102,9 +102,9 @@ ynh_setup_source --dest_dir="$final_path" --source_id=$architecture #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Configuring nginx web server..." +ynh_script_progression --message="Configuring NGINX web server..." -# Create a dedicated nginx config +# Create a dedicated NGINX config ynh_add_nginx_config #================================================= @@ -153,12 +153,12 @@ ynh_store_file_checksum --file="$final_path/config.ini" #================================================= ynh_script_progression --message="Making setup..." -chown -R "$app":"$app" "$final_path" +chown -R $app: $final_path pushd $final_path - sudo -u $app ./writefreely --init-db - sudo -u $app ./writefreely --gen-keys - sudo -u $app ./writefreely --create-admin "$admin":"$password" + ynh_exec_as $app ./writefreely --init-db + ynh_exec_as $app ./writefreely --gen-keys + ynh_exec_as $app ./writefreely --create-admin "$admin":"$password" popd #================================================= @@ -169,7 +169,7 @@ popd ynh_script_progression --message="Securing files and directories..." # Set permissions to app files -chown -R "$app":"$app" "$final_path" +chown -R $app: "$final_path" #================================================= # INTEGRATE SERVICE IN YUNOHOST @@ -194,14 +194,15 @@ ynh_script_progression --message="Configuring SSOwat..." # 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=$app --key=unprotected_uris --value="/" + # 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..." ynh_systemd_action --service_name=nginx --action=reload diff --git a/scripts/remove b/scripts/remove index 29e310c..2882781 100755 --- a/scripts/remove +++ b/scripts/remove @@ -62,9 +62,9 @@ ynh_secure_remove --file="$final_path" #================================================= # REMOVE NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Removing nginx web server configuration..." +ynh_script_progression --message="Removing NGINX web server configuration..." -# Remove the dedicated nginx config +# Remove the dedicated NGINX config ynh_remove_nginx_config #================================================= @@ -75,16 +75,6 @@ ynh_script_progression --message="Removing logrotate configuration..." # Remove the app-specific logrotate config ynh_remove_logrotate -#================================================= -# CLOSE A PORT -#================================================= - -if yunohost firewall list | grep -q "\- $port$" -then - ynh_script_progression --message="Closing port $port..." - ynh_exec_warn_less yunohost firewall disallow TCP $port -fi - #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/restore b/scripts/restore index c084d99..f41358a 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 @@ -48,7 +47,7 @@ test ! -d $final_path \ #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Restoring the nginx configuration..." +ynh_script_progression --message="Restoring the NGINX configuration..." ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" @@ -73,7 +72,7 @@ ynh_system_user_create --username=$app --home_dir="$final_path" ynh_script_progression --message="Restoring user rights..." # Restore permissions on app files -chown -R "$app":"$app" "$final_path" +chown -R $app: "$final_path" #================================================= # SPECIFIC RESTORATION @@ -92,7 +91,7 @@ ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./ ynh_script_progression --message="Restoring the systemd configuration..." ynh_restore_file --origin_path="/etc/systemd/system/$app.service" -systemctl enable $app.service +systemctl enable $app.service --quiet #================================================= # INTEGRATE SERVICE IN YUNOHOST @@ -106,14 +105,14 @@ yunohost service add $app --description "$app daemon for WriteFreely" --log_type #================================================= ynh_script_progression --message="Starting a systemd service..." -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Serving on" +ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Serving on" #================================================= # GENERIC FINALIZATION #================================================= # 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 diff --git a/scripts/upgrade b/scripts/upgrade index 3a7de24..9d2d597 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -8,7 +8,6 @@ source _common.sh source ynh_detect_arch__2 -source ynh_check_app_version_changed source /usr/share/yunohost/helpers #================================================= @@ -72,14 +71,6 @@ ynh_app_setting_delete --app=$app --key=public_stats ynh_app_setting_delete --app=$app --key=private ynh_app_setting_delete --app=$app --key=local_timeline -# Close a port - -if yunohost firewall list | grep -q "\- $port$" -then - echo "Close port $port" >&2 - yunohost firewall disallow TCP $port 2>&1 -fi - #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -119,9 +110,9 @@ fi #================================================= # 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 #================================================= @@ -139,12 +130,12 @@ ynh_system_user_create --username=$app --home_dir="$final_path" #================================================= ynh_script_progression --message="Making the upgrade..." -chown -R "$app":"$app" "$final_path" +chown -R $app: $final_path pushd $final_path ynh_mysql_execute_as_root --sql="ALTER DATABASE $db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;" --database=$db_name - sudo -u $app ./writefreely db migrate - sudo -u $app ./writefreely --migrate + ynh_exec_as $app ./writefreely db migrate + ynh_exec_as $app ./writefreely --migrate popd #================================================= @@ -173,7 +164,7 @@ ynh_store_file_checksum --file="$final_path/config.ini" ynh_script_progression --message="Securing files and directories..." # Set permissions on app files -chown -R "$app":"$app" "$final_path" +chown -R $app: "$final_path" #================================================= # INTEGRATE SERVICE IN YUNOHOST @@ -187,24 +178,12 @@ yunohost service add $app --description "$app daemon for WriteFreely" --log "/va #================================================= ynh_script_progression --message="Starting a systemd service..." -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Serving on" - -#================================================= -# SETUP SSOWAT -#================================================= -ynh_script_progression --message="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=$app --key=unprotected_uris --value="/" -fi +ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Serving on" #================================================= # 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 diff --git a/scripts/ynh_check_app_version_changed b/scripts/ynh_check_app_version_changed deleted file mode 100644 index 641815c..0000000 --- a/scripts/ynh_check_app_version_changed +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -# Checks the app version to upgrade with the existing app version and returns: -# - UPGRADE_APP if the upstream app version has changed -# - UPGRADE_PACKAGE if only the YunoHost package has changed -# -## It stops the current script without error if the package is up-to-date -# -# This helper should be used to avoid an upgrade of an app, or the upstream part -# of it, when it's not needed -# -# To force an upgrade, even if the package is up to date, -# you have to set the variable YNH_FORCE_UPGRADE before. -# example: sudo YNH_FORCE_UPGRADE=1 yunohost app upgrade MyApp - -# usage: ynh_check_app_version_changed -ynh_check_app_version_changed () { - local force_upgrade=${YNH_FORCE_UPGRADE:-0} - local package_check=${PACKAGE_CHECK_EXEC:-0} - - # By default, upstream app version has changed - local return_value="UPGRADE_APP" - - local current_version=$(ynh_read_manifest "/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json" "version" || echo 1.0) - local current_upstream_version="${current_version/~ynh*/}" - local update_version=$(ynh_read_manifest "../manifest.json" "version" || echo 1.0) - local update_upstream_version="${update_version/~ynh*/}" - - if [ "$current_version" == "$update_version" ] ; then - # Complete versions are the same - if [ "$force_upgrade" != "0" ] - then - echo "Upgrade forced by YNH_FORCE_UPGRADE." >&2 - unset YNH_FORCE_UPGRADE - elif [ "$package_check" != "0" ] - then - echo "Upgrade forced for package check." >&2 - else - ynh_die "Up-to-date, nothing to do" 0 - fi - elif [ "$current_upstream_version" == "$update_upstream_version" ] ; then - # Upstream versions are the same, only YunoHost package versions differ - return_value="UPGRADE_PACKAGE" - fi - echo $return_value -}