[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