You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2019/09/03 13:44:40 UTC

[couchdb-pkg] 01/01: Add extra protection to databases during package purge

This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch postrm_remove_databases
in repository https://gitbox.apache.org/repos/asf/couchdb-pkg.git

commit c3b71ddef408d0d1bda1265d79b667ce85bd5549
Author: Robert Newson <rn...@apache.org>
AuthorDate: Tue Sep 3 14:44:09 2019 +0100

    Add extra protection to databases during package purge
---
 debian/couchdb.postrm    | 29 ++++++++++++++++++++---------
 debian/couchdb.templates |  7 +++++++
 2 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/debian/couchdb.postrm b/debian/couchdb.postrm
index c844e43..3db29fc 100644
--- a/debian/couchdb.postrm
+++ b/debian/couchdb.postrm
@@ -19,19 +19,30 @@ case $1 in
         if test -d "/opt/couchdb/etc"; then
             rm -rf "/opt/couchdb/etc"
         fi
-        if test -d "/var/lib/couchdb"; then
-            rm -rf "/var/lib/couchdb"
-        fi
         if test -d "/var/log/couchdb"; then
             rm -rf "/var/log/couchdb"
         fi
-        pkill -u couchdb >/dev/null 2>&1 || true
-        if getent passwd couchdb > /dev/null; then
-            deluser couchdb >/dev/null 2>&1
-        fi
-        if getent group couchdb > /dev/null; then
-            delgroup couchdb >/dev/null 2>&1
+
+        db_input high couchdb/postrm_remove_databases || true
+        db_go || true
+        db_get couchdb/postrm_remove_databases || true
+
+        if [ "$RET" = "true" ]; then
+            if test -d "/var/lib/couchdb"; then
+                rm -rf "/var/lib/couchdb"
+            fi
+
+            # If we didn't delete the data, we should
+            # keep the uid and gid too.
+            if getent passwd couchdb > /dev/null; then
+                deluser couchdb >/dev/null 2>&1
+            fi
+            if getent group couchdb > /dev/null; then
+                delgroup couchdb >/dev/null 2>&1
+            fi
         fi
+
+        pkill -u couchdb >/dev/null 2>&1 || true
         db_reset couchdb/mode
         db_reset couchdb/nodename
         db_reset couchdb/cookie
diff --git a/debian/couchdb.templates b/debian/couchdb.templates
index 0fc5acd..2e927e2 100644
--- a/debian/couchdb.templates
+++ b/debian/couchdb.templates
@@ -94,3 +94,10 @@ _Description: CouchDB 1.x databases found
  /var/lib/couchdb directory. These need migration to be used in
  CouchDB 2.x and forward. Use the `couchup' utility to assist in
  the migration process.
+
+Template: couchdb/postrm_remove_databases
+Type: boolean
+Default: false
+_Description: Remove all CouchDB databases?
+ The /var/lib/couchdb directory containg all CouchDB databases will
+ be removed.