Prechádzať zdrojové kódy

on the way to ynh6

https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/54
https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/29
https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/12
Chris Vogel 1 rok pred
rodič
commit
58ef9c10a4

+ 0 - 6
doc/ADMIN.md

@@ -18,10 +18,4 @@ More about development of **flohmarkt**s yunohost integration can be found in [D
 
 ## removing this app
 
-Removing a flohmarkt instance will **delete all of its data** for the time being. If you remove a flohmarkt **we strongly suggest to make a backup** beforehand. This [issue](https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/29) describes how we'll handle `remove` with and without `--purge` in the future.
-
-**Warning:** This might break any existing installation of couchdb (there's an couchdb app to install just couchdb and expose its port via nginx reverse-proxy and possibly other software installing a couchdb). This could happen if you installed the couchdb app after you installed flohmarkt.
-
-https://codeberg.org/flohmarkt/flohmarkt_ynh/src/commit/7721103bac61787f31a4b2f2ae695c65d4f26fc9/scripts/remove#L44
-
 When installing flohmarkt on a a domain and letting it talk to other ActivityPub instances it will propagate a key associated to your domain. If you remove your flohmarkt from that domain and loose that key other instances might not want to talk to you anymore after you installed flohmarkt again on the same domain generating a new key.

+ 2 - 4
scripts/_common.sh

@@ -52,9 +52,7 @@ flohmarkt_old_service="flohmarkt"
 # otherwise not needed TODO delete after development of the two is done
 flohmarkt_debug=0
 flohmarkt_print_debug() {
-    set +x
     if [[ $flohmarkt_debug -eq 1 ]]; then echo "flohmarkt_debug: $*" >&2; fi
-    set -x
 }
 # source own development version of ynh_handle_getopts_args and ynh_local_curl
 source ynh_handle_getopts_args
@@ -135,9 +133,9 @@ flohmarkt_ynh_import_couchdb() {
 
 flohmarkt_ynh_delete_couchdb_user() {
   local couchdb_user_revision=$( ynh_local_curl -n -m GET -u admin -p "$password_couchdb_admin" \
-    "http://localhost:5984/_users/org.couchdb.user%3A${app}" | jq -r ._rev )
+    "http://127.0.0.1:5984/_users/org.couchdb.user%3A${app}" | jq -r ._rev )
   ynh_local_curl -n -m DELETE -u admin -p ${password_couchdb_admin} -l '"ok":true' \
-    "http://localhost:5984/_users/org.couchdb.user%3A${app}?rev=${couchdb_user_revision}"
+    "http://127.0.0.1:5984/_users/org.couchdb.user%3A${app}?rev=${couchdb_user_revision}"
 }
 
 flohmarkt_ynh_create_couchdb_user() {

+ 15 - 19
scripts/remove

@@ -21,30 +21,31 @@ ynh_script_progression --message="Stopping $app..." --weight=2
 yunohost service stop $flohmarkt_filename
 
 # Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
-if ynh_exec_warn_less yunohost service status $flohmarkt_filename >/dev/null
-then
+if ynh_exec_warn_less yunohost service status $flohmarkt_filename >/dev/null; then
 	ynh_script_progression --message="Removing $app service integration..." --weight=2
     ynh_remove_systemd_config --service=$flohmarkt_filename
     yunohost service remove $flohmarkt_filename
 fi
 
-# https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/12
-ynh_script_progression --message="Removing database and database user..." --weight=2
-# remove DB
-flohmarkt_ynh_delete_couchdb_db
-# remove DB user for this instance:
+# remove DB user for this instance - a new install will create a new user and permissions
+ynh_script_progression --message="Removing couchdb user..." --weight=2
 flohmarkt_ynh_delete_couchdb_user
 
+if [[ $YNH_APP_PURGE -eq 1 ]]; then
+  ynh_script_progression --message="Purging couchdb database ..." --weight=2
+  # remove DB
+  flohmarkt_ynh_delete_couchdb_db
+  # remove logfiles directory
+  ynh_script_progression --message="Purging logfiles..." --weight=2
+  ynh_secure_remove --file="${flohmarkt_log_dir}"
+else
+  ynh_script_progression --message="Purge not selected - not deleting couchdb and logfiles..." --weight=1
+fi
+
 # Remove the app-specific logrotate config
 ynh_script_progression --message="Removing logrotate configuration..." --weight=2
 ynh_remove_logrotate
 
-# remove logfiles directory
-# https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/29
-# can only remove a subdir or one file
-ynh_script_progression --message="Removing logfiles..." --weight=2
-ynh_secure_remove --file="${flohmarkt_log_dir}"
-
 # Remove the dedicated NGINX config
 ynh_script_progression --message="Removing nginx configuration..." --weight=2
 ynh_remove_nginx_config
@@ -53,13 +54,8 @@ ynh_remove_nginx_config
 ynh_script_progression --message="Removing fail2ban configuration..." --weight=2
 ynh_remove_fail2ban_config
 
-# Remove home
-# https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/29
-ynh_script_progression --message="Removing data directory..." --weight=2
-ynh_secure_remove --file=$data_dir
-
 # remove systemd service
-ynh_script_progression --message="Removing data directory..." --weight=2
+ynh_script_progression --message="Removing systemd.service directory..." --weight=2
 ynh_remove_systemd_config
 
 # remove symlinks

+ 3 - 0
scripts/ynh_handle_getopts_args

@@ -1,4 +1,7 @@
+#!/bin/bash
+
 # Redisgn of ynh_handle_getopts_args for flohmarkt to be tested as `flohmarkt_ynh_handle_getopts_args`
+# https://github.com/YunoHost/yunohost/pull/1856
 # Internal helper design to allow helpers to use getopts to manage their arguments
 #
 # [internal]

+ 3 - 0
scripts/ynh_local_curl

@@ -1,4 +1,7 @@
+#!/bin/bash
+
 # local copy of ynh_local_curl() to test some improvement
+# https://github.com/YunoHost/yunohost/pull/1857
 # https://github.com/YunoHost/issues/issues/2396
 # https://codeberg.org/flohmarkt/flohmarkt_ynh/issues/51
 ynh_local_curl() {