[DRE-commits] [diaspora-installer] 01/02: clean all data on purge

Praveen Arimbrathodiyil praveen at moszumanska.debian.org
Tue Mar 21 12:31:43 UTC 2017


This is an automated email from the git hooks/post-receive script.

praveen pushed a commit to branch master
in repository diaspora-installer.

commit 95f9717db6b75e734ce218ba0b9a1f104e5b1893
Author: Praveen Arimbrathodiyil <praveen at debian.org>
Date:   Tue Mar 21 17:54:30 2017 +0530

    clean all data on purge
---
 debian/diaspora-common.postrm             | 15 +++--
 debian/{diaspora-common.postrm => postrm} | 96 ++++++++++---------------------
 debian/preinst                            |  4 +-
 3 files changed, 44 insertions(+), 71 deletions(-)

diff --git a/debian/diaspora-common.postrm b/debian/diaspora-common.postrm
index dc53840..356c309 100644
--- a/debian/diaspora-common.postrm
+++ b/debian/diaspora-common.postrm
@@ -18,11 +18,12 @@ case "$1" in
     # This package is being removed, but its configuration has not yet
     # been purged.
     :
-    
+    # stop the service if running
+    service diaspora status >/dev/null && service diaspora stop
+
     rm -rf /var/lib/diaspora-common/diaspora.conf
     rm -rf /var/lib/diaspora-common/database.yml
     rm -rf /var/lib/diaspora-common/nginx-site-diaspora
-    rm -rf /var/cache/diaspora /var/log/diaspora
 
     # Remove diversion
     # ldconfig is NOT needed during removal of a library, only during
@@ -40,7 +41,7 @@ case "$1" in
       . /usr/share/debconf/confmodule
 
       # Do you want to remove all data?
-      db_input high diaspora-common/purge_ data|| true
+      db_input high diaspora-common/purge_data|| true
       db_go
  
       # Check if we should remove data?
@@ -55,6 +56,11 @@ case "$1" in
         rm -rf ${diaspora_user_home}/app-assets
         rm -rf ${diaspora_user_home}/Gemfile.lock
         rm -rf ${diaspora_user_home}/.bundle
+        rm -rf ${diaspora_user_home}/vendor
+        rm -rf ${diaspora_home}/app/assets
+        rm -rf ${diaspora_home}/db
+        rm -rf ${diaspora_home}/bin
+        rm -rf /var/cache/diaspora /var/log/diaspora
         echo "Removing user: diaspora"
         id -u diaspora && userdel -r diaspora
       fi
@@ -78,7 +84,6 @@ case "$1" in
     rm -f /etc/nginx/sites-available/diaspora
     rm -f /etc/nginx/sites-enabled/diaspora
     rm -rf /etc/diaspora/ssl
-    rm -rf /etc/diaspora
 
     # and finally clear it out from the ucf database
     if which ucf >/dev/null; then
@@ -92,6 +97,8 @@ case "$1" in
         ucfr --purge diaspora-common /etc/nginx/sites-available/diaspora
     fi    
 
+    # remove all configuration files
+    rm -rf /etc/diaspora/*
     ;;
   disappear)
     if test "$2" != overwriter; then
diff --git a/debian/diaspora-common.postrm b/debian/postrm
similarity index 51%
copy from debian/diaspora-common.postrm
copy to debian/postrm
index dc53840..6217e74 100644
--- a/debian/diaspora-common.postrm
+++ b/debian/postrm
@@ -11,22 +11,43 @@ set -e
 # the final step in the removal of this package, after the package's
 # conffiles have been removed.
 
-# Ensure the menu system is updated
+diaspora_home=/usr/share/diaspora
+# Keep it in sync with preinst
+diaspora_symlinks_list="Gemfile.lock log tmp public app/assets bin/bundle vendor/bundle db/schema.rb config/database.yml config/diaspora.yml"
+diaspora_symlinks_dirs="app bin vendor db config"
 
 case "$1" in
   remove)
     # This package is being removed, but its configuration has not yet
     # been purged.
     :
-    
-    rm -rf /var/lib/diaspora-common/diaspora.conf
-    rm -rf /var/lib/diaspora-common/database.yml
-    rm -rf /var/lib/diaspora-common/nginx-site-diaspora
-    rm -rf /var/cache/diaspora /var/log/diaspora
+    # stop the service if running
+    service diaspora status >/dev/null && service diaspora stop
+
+    # These symlinked paths are managed by diaspora-common
+    backup_suffix=$(openssl rand -hex 4)
+    backup_dir=${diaspora_home}/.backup.${backup_suffix}
+    mkdir  ${backup_dir}
 
-    # Remove diversion
-    # ldconfig is NOT needed during removal of a library, only during
-    # installation
+    # Make parent directories
+    for i in ${diaspora_symlinks_dirs}; do
+      mkdir -p ${backup_dir}/$i
+    done
+
+    for i in ${diaspora_symlinks_list}; do
+      test -e ${diaspora_home}/$i && mv ${diaspora_home}/$i ${backup_dir}/$i
+    done
+    rm -rf ${diaspora_home}/*
+    
+    # Make parent directories
+    for i in ${diaspora_symlinks_dirs}; do
+      mkdir -p ${diaspora_home}/$i
+    done
+    for i in ${diaspora_symlinks_list}; do
+      test -e ${backup_dir}/$i && mv ${backup_dir}/$i ${diaspora_home}/$i
+    done
+    rm -rf ${backup_dir}
+    rm -rf /var/cache/diaspora-installer
 
     ;;
   purge)
@@ -34,63 +55,6 @@ case "$1" in
     # its configuration purged from the system.
     :
 
-    # purge debconf questions
-    if [ -e /usr/share/debconf/confmodule ]; then
-      # Source debconf library.
-      . /usr/share/debconf/confmodule
-
-      # Do you want to remove all data?
-      db_input high diaspora-common/purge_ data|| true
-      db_go
- 
-      # Check if we should remove data?
-      db_get diaspora-common/purge_data
-      if [ "${RET}" = "true" ]; then
-        rm -f /etc/dbconfig-common/diaspora-common.conf
-        if which ucf >/dev/null 2>&1; then
-	    ucf --purge /etc/dbconfig-common/diaspora-common.conf
-	    ucfr --purge diaspora-common /etc/dbconfig-common/diaspora-common.conf
-	fi
-        rm -rf ${diaspora_user_home}/public
-        rm -rf ${diaspora_user_home}/app-assets
-        rm -rf ${diaspora_user_home}/Gemfile.lock
-        rm -rf ${diaspora_user_home}/.bundle
-        echo "Removing user: diaspora"
-        id -u diaspora && userdel -r diaspora
-      fi
-
-      # Remove my changes to the db.
-      db_purge
-    fi
-
-    # we mimic dpkg as closely as possible, so we remove configuration
-    # files with dpkg backup extensions too:
-    ### Some of the following is from Tore Anderson:
-    for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
-	rm -f /etc/diaspora.conf$ext
-	rm -f /etc/diaspora/database.yml$ext
-	rm -f /etc/nginx/sites-available/diaspora$ext
-    done
- 
-    # remove the configuration file itself
-    rm -f /etc/diaspora.conf
-    rm -f /etc/diaspora/database.yml
-    rm -f /etc/nginx/sites-available/diaspora
-    rm -f /etc/nginx/sites-enabled/diaspora
-    rm -rf /etc/diaspora/ssl
-    rm -rf /etc/diaspora
-
-    # and finally clear it out from the ucf database
-    if which ucf >/dev/null; then
-        ucf --purge /etc/diaspora.conf
-        ucf --purge /etc/diaspora/database.yml
-        ucf --purge /etc/nginx/sites-available/diaspora
-    fi    
-    if which ucfr >/dev/null; then
-        ucfr --purge diaspora-common /etc/diaspora.conf
-        ucfr --purge diaspora-common /etc/diaspora/database.yml
-        ucfr --purge diaspora-common /etc/nginx/sites-available/diaspora
-    fi    
 
     ;;
   disappear)
diff --git a/debian/preinst b/debian/preinst
index f0449be..3ab0c87 100755
--- a/debian/preinst
+++ b/debian/preinst
@@ -2,6 +2,8 @@
 set -e
 
 diaspora_home=/usr/share/diaspora
+
+# Keep it in sync with postrm
 diaspora_symlinks_list="Gemfile.lock log tmp public app/assets bin/bundle vendor/bundle db/schema.rb config/database.yml config/diaspora.yml"
 
 # Fix bin symlink set by earlier versions
@@ -24,7 +26,7 @@ backup() {
     done
 
     for i in ${diaspora_symlinks_list}; do
-      mv ${backup_dir}/$i ${diaspora_home}/$i
+      test -e ${backup_dir}/$i && mv ${backup_dir}/$i ${diaspora_home}/$i
     done
 }
  

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/diaspora-installer.git



More information about the Pkg-ruby-extras-commits mailing list