diff --git a/README.md b/README.md index 096bebc..97c6605 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ MobiliZon aims to solve existing platform's problems to organize events in a dec Mobilizon is a tool designed to create platforms for managing communities and events. Its purpose is to help as many people as possible to free themselves from Facebook groups and events, from Meetup, etc. -**Shipped version:** 0.1.0-2019-04-24 +**Shipped version:** 0.1.0-2019-05-15 ## Important @@ -46,15 +46,15 @@ exit #### Supported architectures -* x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/mobilizon%20%28Community%29.svg)](https://ci-apps.yunohost.org/ci/apps/mobilizon/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/mobilizon%20%28Community%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/mobilizon/) -* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/mobilizon%20%28Community%29.svg)](https://ci-stretch.nohost.me/ci/apps/mobilizon/) +* x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/mobilizon%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/mobilizon/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/mobilizon%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/mobilizon/) +* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/mobilizon%20%28Apps%29.svg)](https://ci-stretch.nohost.me/ci/apps/mobilizon/) ## Links * Report a bug: https://github.com/YunoHost-Apps/mobilizon_ynh/issues * App website: https://joinmobilizon.org/ - * Git website: https://framagit.org/framasoft/mobilizon/ + * Upstream app repository: https://framagit.org/framasoft/mobilizon/ * YunoHost website: https://yunohost.org/ --- diff --git a/conf/app.src b/conf/app.src index a0589e2..3423c7e 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://framagit.org/framasoft/mobilizon/-/archive/690620cdffd5700eec27abf9aaaec28368bed10b/mobilizon-690620cdffd5700eec27abf9aaaec28368bed10b.tar.gz -SOURCE_SUM=6a4f9b18a096a3997fffba527544cfa232066580080cc2380bf56c114b6d30d3 +SOURCE_URL=https://framagit.org/framasoft/mobilizon/-/archive/c53f19dc04cdbdfc23f654daa489be28e18ff7f1/mobilizon-c53f19dc04cdbdfc23f654daa489be28e18ff7f1.tar.gz +SOURCE_SUM=27e8f0a5fecd71e7531cec794870cefb23a8692fe2ed9463c272fbb05481292f SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 24eae95..c8dcdfa 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Your federated organization and mobilization platform.", "fr": "Votre plateforme fédérée d'organisation et de mobilisation." }, - "version": "0.1.0-2019-04-24~ynh1", + "version": "0.1.0-2019-05-15~ynh1", "url": "https://joinmobilizon.org/", "license": "AGPL-3.0-or-later", "maintainer": { diff --git a/scripts/backup b/scripts/backup index 0a3152f..1a7912d 100644 --- a/scripts/backup +++ b/scripts/backup @@ -33,6 +33,13 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) #================================================= # STANDARD BACKUP STEPS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Stopping a systemd service..." + +ynh_systemd_action --service_name=$app --action="stop" + #================================================= # BACKUP THE APP MAIN DIR #================================================= @@ -63,6 +70,13 @@ ynh_print_info --message="Backing up systemd configuration..." ynh_backup --src_path="/etc/systemd/system/$app.service" +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Starting a systemd service..." + +ynh_systemd_action --service_name=$app --action="start" + #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/change_url b/scripts/change_url index 9a85ce2..9f6c8df 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -29,6 +29,11 @@ ynh_print_info --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) + #================================================= # CHECK WHICH PARTS SHOULD BE CHANGED #================================================= @@ -47,6 +52,13 @@ fi #================================================= # STANDARD MODIFICATIONS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Stopping a systemd service..." + +ynh_systemd_action --action=stop --service_name=$app + #================================================= # MODIFY URL IN NGINX CONF #================================================= @@ -78,12 +90,6 @@ fi #================================================= # SPECIFIC MODIFICATIONS -#================================================= -# STOP SERVICE -#================================================= - -ynh_systemd_action --action=stop --service_name=$app - #================================================= # MODIFY A CONFIG FILE #================================================= @@ -91,12 +97,6 @@ ynh_systemd_action --action=stop --service_name=$app ynh_replace_string --match_string="$old_domain" --replace_string="$new_domain" --target_file="$final_path/$app/.env" ynh_replace_string --match_string="$old_domain" --replace_string="$new_domain" --target_file="$final_path/$app/config/prod.secret.exs" -#================================================= -# START SERVICE -#================================================= - -ynh_systemd_action --action=start --service_name=$app --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" - #================================================= # STORE THE CONFIG FILE CHECKSUM #================================================= @@ -107,12 +107,18 @@ ynh_store_file_checksum --file="$final_path/$app/.env" #================================================= # GENERIC FINALISATION +#================================================= +# START SYSTEMD SERVICE +#================================================= + +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" + #================================================= # RELOAD NGINX #================================================= ynh_print_info --message="Reloading nginx web server..." -systemctl reload nginx +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT diff --git a/scripts/install b/scripts/install index cda7e73..32bc8a4 100644 --- a/scripts/install +++ b/scripts/install @@ -43,7 +43,7 @@ app=$YNH_APP_INSTANCE_NAME ynh_print_info --message="Validating installation parameters..." final_path=/var/www/$app -test ! -e "$final_path" || ynh_die "This path already contains a folder" +test ! -e "$final_path" || ynh_die --message="This path already contains a folder" # Register (book) web path ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url @@ -70,7 +70,7 @@ ynh_app_setting_set --app=$app --key=admin_email --value=$admin_email ynh_print_info --message="Configuring firewall..." # Find a free port -port=$(ynh_find_port 8095) +port=$(ynh_find_port --port=8095) ynh_app_setting_set --app=$app --key=port --value=$port #================================================= @@ -80,7 +80,7 @@ ynh_print_info --message="Installing dependencies..." ynh_install_app_dependencies $pkg_dependencies -ynh_install_nodejs 10 +ynh_install_nodejs --nodejs_version="10" ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ stable main" --package="yarn" --key='https://dl.yarnpkg.com/debian/pubkey.gpg' @@ -221,6 +221,12 @@ chown -R "$app":"$app" "$final_path" # 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 Mobilizon" +#================================================= +# START SYSTEMD SERVICE +#================================================= + +ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" + #================================================= # SETUP SSOWAT #================================================= @@ -238,13 +244,7 @@ fi #================================================= ynh_print_info --message="Reloading nginx web server..." -systemctl reload nginx - -#================================================= -# START SERVICE -#================================================= - -ynh_systemd_action --action=start --service_name=$app --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT diff --git a/scripts/remove b/scripts/remove index 439e571..03552d5 100644 --- a/scripts/remove +++ b/scripts/remove @@ -31,16 +31,10 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) # 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 --message="Removing $app service" + ynh_print_info --message="Removing $app service..." yunohost service remove $app fi -#================================================= -# STOP SERVICE -#================================================= - -ynh_systemd_action --action=stop --service_name=$app - #================================================= # STOP AND REMOVE SERVICE #================================================= @@ -54,8 +48,6 @@ ynh_remove_systemd_config #================================================= ynh_print_info --message="Removing the PostgreSQL database" -ynh_psql_execute_as_root --sql="SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$db_name';" --database=$db_name - # Remove a database if it exists, along with the associated user ynh_psql_remove_db --db_user=$db_user --db_name=$db_name @@ -92,7 +84,7 @@ ynh_print_info --message="Closing a port..." if yunohost firewall list | grep -q "\- $port$" then - ynh_print_info --message="Closing port $port" + ynh_script_progression --message="Closing port $port..." ynh_exec_warn_less yunohost firewall disallow TCP $port fi diff --git a/scripts/restore b/scripts/restore index b1e1851..62ab575 100644 --- a/scripts/restore +++ b/scripts/restore @@ -86,15 +86,10 @@ ynh_print_info --message="Reinstalling dependencies..." # Define and install dependencies ynh_install_app_dependencies $pkg_dependencies -ynh_install_nodejs 10 +ynh_install_nodejs --nodejs_version="10" ynh_install_extra_app_dependencies --repo="deb https://dl.yarnpkg.com/debian/ stable main" --package="yarn" --key='https://dl.yarnpkg.com/debian/pubkey.gpg' -#================================================= -# REINSTALL EXTRA DEPENDENCIES -#================================================= -ynh_print_info --message="Reinstalling extra dependencies ..." - lsb_name="$(lsb_release --codename --short)" ynh_install_extra_app_dependencies --repo="deb http://packages.erlang-solutions.com/debian $lsb_name contrib" --package="$extra_pkg_dependencies" --key='https://packages.erlang-solutions.com/debian/erlang_solutions.asc' @@ -105,10 +100,10 @@ ynh_print_info --message="Restoring the PostgreSQL database..." 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_as_root --sql="create extension if not exists postgis;" --database=$db_name +ynh_psql_execute_as_root --sql="CREATE EXTENSION IF NOT EXISTS postgis;" --database=$db_name ynh_psql_execute_as_root --sql="CREATE EXTENSION IF NOT EXISTS pg_trgm;" --database=$db_name ynh_psql_execute_as_root --sql="CREATE EXTENSION IF NOT EXISTS unaccent;" --database=$db_name -ynh_psql_execute_file_as_root --file=./db.sql --database=$db_name +ynh_psql_execute_file_as_root --file="./db.sql" --database=$db_name #================================================= # RESTORE SYSTEMD @@ -117,7 +112,6 @@ ynh_print_info --message="Restoring the systemd configuration..." ynh_restore_file --origin_path="/etc/systemd/system/$app.service" systemctl enable $app.service -systemctl daemon-reload #================================================= # ADVERTISE SERVICE IN ADMIN PANEL @@ -125,6 +119,12 @@ systemctl daemon-reload yunohost service add $app --description "$app daemon for Mobilizon" +#================================================= +# START SYSTEMD SERVICE +#================================================= + +ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" + #================================================= # GENERIC FINALIZATION #================================================= @@ -132,13 +132,7 @@ yunohost service add $app --description "$app daemon for Mobilizon" #================================================= ynh_print_info --message="Reloading nginx web server..." -systemctl reload nginx - -#================================================= -# START SERVICE -#================================================= - -ynh_systemd_action --action=start --service_name=$app --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT diff --git a/scripts/upgrade b/scripts/upgrade index 64b0771..d5501d4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -31,6 +31,12 @@ secret=$(ynh_app_setting_get --app=$app --key=secret) name=$(ynh_app_setting_get --app=$app --key=name) admin_email=$(ynh_app_setting_get --app=$app --key=admin_email) +#================================================= +# CHECK VERSION +#================================================= + +upgrade_type=$(ynh_check_app_version_changed) + #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= @@ -46,13 +52,13 @@ elif [ "$is_public" = "No" ]; then fi # If db_name doesn't exist, create it -if [ -z $db_name ]; then +if [ -z "$db_name" ]; then db_name=$(ynh_sanitize_dbid --db_name=$app) ynh_app_setting_set --app=$app --key=db_name --value=$db_name fi # If final_path doesn't exist, create it -if [ -z $final_path ]; then +if [ -z "$final_path" ]; then final_path=/var/www/$app ynh_app_setting_set --app=$app --key=final_path --value=$final_path fi @@ -72,21 +78,26 @@ ynh_clean_setup () { # Exit if an error occurs during the execution of the script ynh_abort_if_errors -#================================================= -# STOP SERVICE -#================================================= - -ynh_systemd_action --action=stop --service_name=$app --log_path=systemd - #================================================= # STANDARD UPGRADE STEPS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Stopping a systemd service..." + +ynh_systemd_action --service_name=$app --action="stop" --log_path=systemd + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= -ynh_print_info --message="Upgrading source files..." -# Download, check integrity, uncompress and patch the source from app.src -ynh_setup_source --dest_dir="$final_path/$app" +if [ "$upgrade_type" == "UPGRADE_APP" ] +then + ynh_script_progression --message="Upgrading source files..." --time --weight=1 + + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir="$final_path/$app" +fi #================================================= # NGINX CONFIGURATION @@ -103,12 +114,7 @@ ynh_print_info --message="Upgrading dependencies..." ynh_install_app_dependencies $pkg_dependencies -ynh_install_nodejs 10 - -#================================================= -# INSTALL EXTRA DEPENDENCIES -#================================================= -ynh_print_info --message="Installing extra dependencies ..." +ynh_install_nodejs --nodejs_version="10" lsb_name="$(lsb_release --codename --short)" ynh_install_extra_app_dependencies --repo="deb http://packages.erlang-solutions.com/debian $lsb_name contrib" --package="$extra_pkg_dependencies" --key='https://packages.erlang-solutions.com/debian/erlang_solutions.asc' @@ -173,7 +179,11 @@ pushd $final_path/$app sudo -u "$app" MIX_ENV=prod mix phx.digest popd -ynh_backup_if_checksum_is_different "$config" +#================================================= +# STORE THE CONFIG FILE CHECKSUM +#================================================= + +ynh_backup_if_checksum_is_different --file="$config" # Recalculate and store the checksum of the file for the next upgrade. ynh_store_file_checksum --file="$config" @@ -206,18 +216,19 @@ then ynh_app_setting_set --app=$app --key=unprotected_uris --value="/" fi +#================================================= +# START SERVICE +#================================================= +ynh_print_info --message="Starting a systemd service..." + +ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" + #================================================= # RELOAD NGINX #================================================= ynh_print_info --message="Reloading nginx web server..." -systemctl reload nginx - -#================================================= -# START SERVICE -#================================================= - -ynh_systemd_action --action=start --service_name=$app --log_path=systemd --line_match="Access MobilizonWeb.Endpoint at" +ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT