From dc2fa0df4bc11bdf47b934d0a1023caa48fa865f Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 15 May 2021 14:40:07 +0200 Subject: [PATCH] Apply example_ynh --- manifest.json | 118 ++++++++++++++++++++------------------------- scripts/backup | 6 --- scripts/change_url | 2 +- scripts/install | 5 +- scripts/restore | 2 +- scripts/upgrade | 87 +++++++++++++++++++++------------ 6 files changed, 110 insertions(+), 110 deletions(-) diff --git a/manifest.json b/manifest.json index 7d3b4f0..cdf0a6d 100644 --- a/manifest.json +++ b/manifest.json @@ -1,69 +1,53 @@ { - "name": "Couchdb", - "id": "couchdb", - "packaging_format": 1, - "description": { - "en": "An open-source document-oriented NoSQL database.", - "fr": "Système de gestion de base de données orienté documents." - }, - "version": "3.1.1~ynh1", - "url": "https://couchdb.apache.org/", - "license": "Apache-2.0", - "maintainer": { - "name": "Squeak", - "email": "squeak@eauchat.org", - "url": "https://squeak.eauchat.org" - }, - "requirements": { - "yunohost": ">= 4.1.3" - }, - "multi_instance": false, - "services": [ - "nginx" - ], - "arguments": { - "install" : [ - { - "name": "domain", - "type": "domain", - "ask": { - "en": "Choose a domain name for couchdb", - "fr": "Choisissez un nom de domaine pour couchdb" - }, - "example": "example.com" - }, - { - "name": "path", - "type": "path", - "ask": { - "en": "Choose a path for couchdb", - "fr": "Choisissez un chemin pour couchdb" - }, - "example": "/couch", - "default": "/couch" - }, - { - "name": "is_public", - "type": "boolean", - "ask": { - "en": "Is it a public application?", - "fr": "Est-ce une application publique ?" - }, - "help": { - "en": "If enabled, couchdb will be accessible without yunohost account on your server, but couchdb contains it's own user authentication system.", - "fr": "Si cette case est cochée, couchdb sera accessible aux personnes n’ayant pas de compte yunohost sur votre serveur, mais couchdb a son propre système d'autentification des utilisateurs." - }, - "default": true - }, - { - "name": "password", - "type": "password", - "ask": { - "en": "Set the administrator password (between 8 and 30 characters)", - "fr": "Définissez le mot de passe administrateur (entre 8 et 30 caractères)" - }, - "example": "Choose a password" - } - ] - } + "name": "Couchdb", + "id": "couchdb", + "packaging_format": 1, + "description": { + "en": "An open-source document-oriented NoSQL database.", + "fr": "Système de gestion de base de données orienté documents." + }, + "version": "3.1.1~ynh1", + "url": "https://couchdb.apache.org/", + "license": "Apache-2.0", + "maintainer": { + "name": "Squeak", + "email": "squeak@eauchat.org", + "url": "https://squeak.eauchat.org" + }, + "requirements": { + "yunohost": ">= 4.1.3" + }, + "multi_instance": false, + "services": [ + "nginx" + ], + "arguments": { + "install" : [ + { + "name": "domain", + "type": "domain", + "example": "example.com" + }, + { + "name": "path", + "type": "path", + "example": "/couch", + "default": "/couch" + }, + { + "name": "is_public", + "type": "boolean", + "help": { + "en": "If enabled, couchdb will be accessible without yunohost account on your server, but couchdb contains it's own user authentication system.", + "fr": "Si cette case est cochée, couchdb sera accessible aux personnes n’ayant pas de compte yunohost sur votre serveur, mais couchdb a son propre système d'autentification des utilisateurs." + }, + "default": true + }, + { + "name": "password", + "type": "password", + "example": "Choose a password" + } + ] + } } diff --git a/scripts/backup b/scripts/backup index e0092b7..622ac8d 100755 --- a/scripts/backup +++ b/scripts/backup @@ -15,7 +15,6 @@ source /usr/share/yunohost/helpers #================================================= 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 @@ -36,11 +35,6 @@ domain=$(ynh_app_setting_get --app=$app --key=domain) #================================================= ynh_print_info --message="Declaring files to be backed up..." -### N.B. : the following 'ynh_backup' calls are only a *declaration* of what needs -### to be backuped and not an actual copy of any file. The actual backup that -### creates and fill the archive with the files happens in the core after this -### script is called. Hence ynh_backups calls takes basically 0 seconds to run. - #================================================= # BACKUP THE APP MAIN DIR #================================================= diff --git a/scripts/change_url b/scripts/change_url index f072734..6506704 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -31,7 +31,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) port=$(ynh_app_setting_get --app=$app --key=port) #================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP #================================================= ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=15 diff --git a/scripts/install b/scripts/install index 668916e..3ad95a7 100755 --- a/scripts/install +++ b/scripts/install @@ -14,7 +14,6 @@ source /usr/share/yunohost/helpers #================================================= 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 @@ -24,13 +23,13 @@ ynh_abort_if_errors # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= -app=$YNH_APP_INSTANCE_NAME - domain=$YNH_APP_ARG_DOMAIN path_url=$YNH_APP_ARG_PATH is_public=$YNH_APP_ARG_IS_PUBLIC password=$YNH_APP_ARG_PASSWORD +app=$YNH_APP_INSTANCE_NAME + #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= diff --git a/scripts/restore b/scripts/restore index cb458e4..139a1db 100755 --- a/scripts/restore +++ b/scripts/restore @@ -15,7 +15,6 @@ source /usr/share/yunohost/helpers #================================================= 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 @@ -110,6 +109,7 @@ yunohost service add $app --description="Open-source document-oriented NoSQL dat #================================================= # RESTORE THE LOGROTATE CONFIGURATION #================================================= +ynh_script_progression --message="Restoring the logrotate configuration..." ynh_restore_file --origin_path="/etc/logrotate.d/$app" diff --git a/scripts/upgrade b/scripts/upgrade index a01bb3a..d4eada2 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -20,44 +20,15 @@ domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) final_path=$(ynh_app_setting_get --app=$app --key=final_path) port=$(ynh_app_setting_get --app=$app --key=port) +password=$(ynh_app_setting_get --app=$app --key=password) #================================================= # CHECK VERSION #================================================= +ynh_script_progression --message="Checking version..." -### This helper will compare the version of the currently installed app and the version of the upstream package. -### $upgrade_type can have 2 different values -### - UPGRADE_APP if the upstream app version has changed -### - UPGRADE_PACKAGE if only the YunoHost package has changed -### ynh_check_app_version_changed will stop the upgrade if the app is up to date. -### UPGRADE_APP should be used to upgrade the core app only if there's an upgrade to do. upgrade_type=$(ynh_check_app_version_changed) -#================================================= -# ENSURE DOWNWARD COMPATIBILITY -#================================================= -ynh_script_progression --message="Ensuring downward compatibility..." --weight=4 - -### If nobody installed your app before 4.1, -### then you may safely remove these lines - -# Cleaning legacy permissions -if ynh_legacy_permissions_exists; then - ynh_legacy_permissions_delete_all - - ynh_app_setting_delete --app=$app --key=is_public -fi - -if ! ynh_permission_exists --permission="admin"; then - # Create the required permissions - ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin -fi - -# Create a permission if needed -if ! ynh_permission_exists --permission="api"; then - ynh_permission_create --permission="api" --url "/api" --allowed="visitors" --show_tile="false" --protected="true" -fi - #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -74,6 +45,28 @@ ynh_abort_if_errors #================================================= # STANDARD UPGRADE STEPS +#================================================= +# ENSURE DOWNWARD COMPATIBILITY +#================================================= +ynh_script_progression --message="Ensuring downward compatibility..." --weight=4 + +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + +if ! ynh_permission_exists --permission="admin"; then + # Create the required permissions + ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin +fi + +# Create a permission if needed +if ! ynh_permission_exists --permission="api"; then + ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true" +fi + #================================================= # NGINX CONFIGURATION #================================================= @@ -87,7 +80,37 @@ ynh_add_nginx_config #================================================= ynh_script_progression --message="Upgrading dependencies..." --weight=15 -ynh_install_app_dependencies $pkg_dependencies couchdb +ynh_install_app_dependencies $pkg_dependencies + +#================================================= +# SPECIFIC UPGRADE +#================================================= +# UPGRADING COUCHDB +#================================================= +ynh_script_progression --message="Upgrading couchdb..." --weight=60 + +COUCHDB_PASSWORD=$password +echo "couchdb couchdb/mode select standalone +couchdb couchdb/mode seen true +couchdb couchdb/bindaddress string 127.0.0.1 +couchdb couchdb/bindaddress seen true +couchdb couchdb/adminpass password ${COUCHDB_PASSWORD} +couchdb couchdb/adminpass seen true +couchdb couchdb/adminpass_again password ${COUCHDB_PASSWORD} +couchdb couchdb/adminpass_again seen true" | debconf-set-selections +DEBIAN_FRONTEND=noninteractive # apt-get install -y --force-yes couchdb + +apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61 + +ynh_install_extra_app_dependencies --repo="https://apache.bintray.com/couchdb-deb buster main" --package="couchdb" +# ynh_install_extra_app_dependencies --repo="https://apache.bintray.com/couchdb-deb buster main" --package="couchdb" --key="https://apache.bintray.com/couchdb-deb/dists/buster/Release.gpg" + +#================================================= +# UPDATE A CONFIG FILE +#================================================= +ynh_script_progression --message="Updating a configuration file..." + +ynh_add_config --template="../conf/couch_ynh.ini" --destination="$final_path/etc/local.d/couch_ynh.ini" #================================================= # GENERIC FINALIZATION