diff --git a/README.md b/README.md index cb63e86..bff78f6 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in Garradin (word meaning money in an aboriginal dialect of northern Australia, pronounced "gar-a-dine" em) is software for associative management. It is the tool of choice for managing an association, a sports club, an NGO, etc. It is designed to meet the needs of a small to medium-sized structure: management of members, accounting, website, note-taking in meetings, archiving and sharing of the association's operating documents, discussion between members, etc. etc. . -**Shipped version:** 1.1.14~ynh1 +**Shipped version:** 1.1.17~ynh1 **Demo:** https://garradin.eu/essai/ diff --git a/README_fr.md b/README_fr.md index bda5c5d..9580d82 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour Garradin (mot signifiant argent dans un dialecte aborigène du nord de l'Australie, prononcé « gar-a-dine »em) est un logiciel de gestion associative. Il est l'outil de prédilection pour gérer une association, un club sportif, une ONG, etc. Il est conçu pour répondre aux besoins d'une structure de petite à moyenne taille : gestion des adhérents, comptabilité, site web, prise de notes en réunion, archivage et partage des documents de fonctionnement de l'association, discussion entre adhérents, etc etc. -**Version incluse :** 1.1.14~ynh1 +**Version incluse :** 1.1.17~ynh1 **Démo :** https://garradin.eu/essai/ diff --git a/check_process b/check_process index c6f654f..89a9335 100644 --- a/check_process +++ b/check_process @@ -1,4 +1,8 @@ ; Test complet + ; pre-upgrade + if [ "$FROM_COMMIT" == "04e1730ff642a2e48dfb533b2136fe90f9eaf133" ]; then + chmod -R o-rwx /var/www/garradin + fi ; Manifest domain="domain.tld" path="/path" @@ -11,7 +15,8 @@ setup_private=1 setup_public=1 upgrade=1 - upgrade=1 from_commit=2be21892a9b479710405a6ecd74ffb0541e0d202 + upgrade=1 from_commit=7205455e0a806a49c48c6d2f005d80d1b74a3355 + upgrade=1 from_commit=04e1730ff642a2e48dfb533b2136fe90f9eaf133 backup_restore=1 multi_instance=1 change_url=1 @@ -19,6 +24,9 @@ Email= Notification=none ;;; Upgrade options - ; commit=2be21892a9b479710405a6ecd74ffb0541e0d202 - name=Merge pull request #55 from yunohost-bot/issue-and-pr-template + ; commit=7205455e0a806a49c48c6d2f005d80d1b74a3355 + name=Previous version + manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& + ; commit=04e1730ff642a2e48dfb533b2136fe90f9eaf133 + name=Version 1.0.6~ynh1 manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& diff --git a/conf/app.src b/conf/app.src index 06e9006..8ea6329 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://fossil.kd2.org/garradin/uv/garradin-1.1.14.tar.bz2 -SOURCE_SUM=bd735252540c6d26a1593d61486881a296a9b4a166532083805808b015da33d7 +SOURCE_URL=https://fossil.kd2.org/garradin/uv/garradin-1.1.17.tar.gz +SOURCE_SUM=7eb9e66dabb2a57d55dd74ebdc54ad40850b5e6f98d260b63faeafabf8ef6687 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.bz2 SOURCE_IN_SUBDIR=true diff --git a/conf/config.local.php b/conf/config.local.php new file mode 100644 index 0000000..e9b8a71 --- /dev/null +++ b/conf/config.local.php @@ -0,0 +1,9 @@ + >(grep -v 'WARNING E: Unable to locate package') #================================================= # GENERIC FINALIZATION diff --git a/scripts/restore b/scripts/restore index d702b05..d712603 100644 --- a/scripts/restore +++ b/scripts/restore @@ -35,7 +35,7 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) ynh_script_progression --message="Validating restoration parameters..." --weight=4 test ! -d $final_path \ - || ynh_die "There is already a directory: $final_path " + || ynh_die --message="There is already a directory: $final_path " #================================================= # STANDARD RESTORATION STEPS @@ -71,7 +71,9 @@ find "$final_path" -type d -exec chmod 550 {} + find "$final_path" -type f -exec chmod 440 {} + find "$final_path/data" -type d -exec chmod 770 {} + find "$final_path/data" -type f -exec chmod 660 {} + -chmod 660 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.yunohost.php" +chmod 660 "$final_path/config.local.user.php" #================================================= # RESTORE THE PHP-FPM CONFIGURATION @@ -80,7 +82,8 @@ ynh_script_progression --message="Reconfiguring PHP-FPM..." --weight=6 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" -ynh_add_fpm_config --package="$extra_php_dependencies" +ynh_install_app_dependencies "$extra_php_dependencies" +ynh_add_fpm_config #================================================= # GENERIC FINALIZATION diff --git a/scripts/upgrade b/scripts/upgrade index e47b8cf..accbb30 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -18,8 +18,9 @@ app=$YNH_APP_INSTANCE_NAME 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) || ynh_die "This path already contains a folder" +final_path=$(ynh_app_setting_get --app=$app --key=final_path) || ynh_die --message="This path already contains a folder" phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +secret_key=$(ynh_string_random --length=50) #================================================= # CHECK VERSION @@ -66,13 +67,23 @@ ynh_script_progression --message="Backing up the data before upgrading (may take bdd=$final_path/association.sqlite squelettes=$final_path/www/squelettes +data=$final_path/data +skel_dist=$final_path/www/skel-dist if [ -d "$squelettes" ]; then - cp -ar $squelettes /tmp/squelettes + cp -a "$squelettes" /tmp/squelettes fi if [ -e "$bdd" ]; then - cp -a $bdd /tmp/association.sqlite + cp -a "$bdd" /tmp/association.sqlite +fi + +if [ -d "$data" ]; then + cp -a "$data" /tmp/data +fi + +if [ -d "$skel_dist" ]; then + cp -a "$skel_dist" /tmp/skel-dist fi #================================================= @@ -81,13 +92,14 @@ fi if ynh_compare_current_package_version --comparison lt --version 0.9.8.1~ynh1 then - ynh_script_progression --message="Upgrading upgrade to 0.9.8" --weight=5 + ynh_script_progression --message="Upgrading to 0.9.8" --weight=5 # Download, check integrity, uncompress and patch the source from 0.9.8.src ynh_setup_source --keep="config.local.php" --dest_dir="$final_path" --source_id="0.9.8" # Set permissions on app files ynh_system_user_create --username=$app ynh_add_nginx_config - ynh_add_fpm_config --package="$extra_php_dependencies" + ynh_install_app_dependencies "$extra_php_dependencies" + ynh_add_fpm_config phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) ynh_script_progression --message="restore data..." --weight=10 @@ -96,12 +108,12 @@ then if [ -d "$backup_squelettes" ] then - cp -ar $backup_squelettes $final_path/www/squelettes + cp -a "$backup_squelettes" $final_path/www/squelettes fi if [ -e "$backup_bdd" ] then - cp -a $backup_bdd $final_path/association.sqlite + cp -a "$backup_bdd" $final_path/association.sqlite fi chown -R $app:$app $final_path @@ -128,13 +140,14 @@ fi if ynh_compare_current_package_version --comparison lt --version 1.1.0~ynh1 then - ynh_script_progression --message="Upgrading upgrade to 1.1.0" --weight=5 + ynh_script_progression --message="Upgrading to 1.1.0" --weight=5 # Download, check integrity, uncompress and patch the source from 0.9.8.src ynh_setup_source --keep="config.local.php" --dest_dir="$final_path" --source_id="1.1.0" # Set permissions on app files ynh_system_user_create --username=$app ynh_add_nginx_config - ynh_add_fpm_config --package="$extra_php_dependencies" + ynh_install_app_dependencies "$extra_php_dependencies" + ynh_add_fpm_config phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) ynh_script_progression --message="restore data..." --weight=10 @@ -143,12 +156,12 @@ then if [ -d "$backup_squelettes" ] then - cp -ar $backup_squelettes $final_path/www/squelettes + cp -a "$backup_squelettes" $final_path/www/squelettes fi if [ -e "$backup_bdd" ] then - cp -a $backup_bdd $final_path/association.sqlite + cp -a "$backup_bdd" $final_path/association.sqlite fi chown -R $app:$app $final_path @@ -186,7 +199,7 @@ ynh_script_progression --message="Upgrading source files..." --weight=5 if [ "$upgrade_type" == "UPGRADE_APP" ] then # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --keep="config.local.php" --dest_dir="$final_path" + ynh_setup_source --keep="config.local.user.php" --dest_dir="$final_path" fi #================================================= @@ -203,7 +216,8 @@ ynh_add_nginx_config ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=2 # Create a dedicated PHP-FPM config -ynh_add_fpm_config --package="$extra_php_dependencies" +ynh_install_app_dependencies "$extra_php_dependencies" +ynh_add_fpm_config #======================================================= # backup bdd, squelettes directory and config.local.php @@ -212,24 +226,47 @@ ynh_script_progression --message="restore data..." --weight=10 backup_bdd=/tmp/association.sqlite backup_squelettes=/tmp/squelettes +backup_data=/tmp/data +backup_skel_dist=/tmp/skel-dist if [ -d "$backup_squelettes" ] then - cp -ar $backup_squelettes $final_path/www/squelettes + cp -a "$backup_squelettes" $final_path/www/squelettes ynh_secure_remove $backup_squelettes fi if [ -e "$backup_bdd" ] then - cp -a $backup_bdd $final_path/association.sqlite + cp -a "$backup_bdd" $final_path/association.sqlite ynh_secure_remove $backup_bdd fi +if [ -d "$backup_data" ] +then + cp -a "$backup_data" $final_path/data + ynh_secure_remove $backup_data +fi + +if [ -d "$backup_skel_dist" ] +then + cp -a "$backup_skel_dist" $final_path/www/skel-dist + ynh_secure_remove $backup_skel_dist +fi + + #================================================= # ADD A CONFIGURATION #================================================= ynh_script_progression --message="Adding a configuration file..." --weight=5 +if ynh_compare_current_package_version --comparison lt --version 1.1.15~ynh1; then + ynh_add_config --template="config.local.user.php" --destination="$final_path/config.local.user.php" +fi + +ynh_add_config --template="config.local.php" --destination="$final_path/config.local.php" +ynh_add_config --template="config.local.yunohost.php" --destination="$final_path/config.local.yunohost.php" +# NOTE: Don't overwrite config.local.user.php + # Permissions on files and directories chmod -R o-rwx "$final_path" chown -R $app:www-data "$final_path" @@ -237,7 +274,9 @@ find "$final_path" -type d -exec chmod 550 {} + find "$final_path" -type f -exec chmod 440 {} + find "$final_path/data" -type d -exec chmod 770 {} + find "$final_path/data" -type f -exec chmod 660 {} + -chmod 660 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.yunohost.php" +chmod 660 "$final_path/config.local.user.php" #================================================= # RELOAD NGINX @@ -252,7 +291,6 @@ ynh_systemd_action --service_name=nginx --action=reload ynh_script_progression --message="Finalise upgrade" --weight=1 ynh_local_curl "/admin/index.php" -chmod 440 "$final_path/config.local.php" #================================================= # END OF SCRIPT