debian-mirror-gitlab/debian/postrm
2017-03-17 22:27:14 +05:30

199 lines
6.5 KiB
Bash

#! /bin/sh
# postrm.skeleton
# Skeleton maintainer script showing all the possible cases.
# Written by Charles Briscoe-Smith, March-June 1998. Public Domain.
# Abort if any command returns an error value
set -e
# Set variables
gitlab_debian_conf=/etc/gitlab/gitlab-debian.conf
gitlab_debian_defaults=/var/lib/gitlab/gitlab-debian.defaults
# This script is called twice during the removal of the package; once
# after the removal of the package's files from the system, and as
# the final step in the removal of this package, after the package's
# conffiles have been removed.
# Ensure the menu system is updated
# Read debian specific configuration
test -f ${gitlab_debian_conf} && . ${gitlab_debian_conf}
. ${gitlab_debian_defaults}
case "$1" in
remove)
# This package is being removed, but its configuration has not yet
# been purged.
:
# Remove diversion
# ldconfig is NOT needed during removal of a library, only during
# installation
;;
purge)
# This package has previously been removed and is now having
# 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 gitlab/purge || true
db_go
# Check if we should remove data?
db_get gitlab/purge
if [ "${RET}" = "true" ]; then
rm -rf ${gitlab_data_dir}/shared
rm -rf ${gitlab_data_dir}/public
rm -rf ${gitlab_data_dir}/db
rm -rf ${gitlab_data_dir}/repositories
rm -rf ${gitlab_data_dir}/secrets.yml
rm -rf ${gitlab_data_dir}/Gemfile.lock
rm -rf ${gitlab_log_dir}
rm -rf ${gitlab_cache_path}
rm -rf ${gitlab_pid_path}
rm -rf ${gitlab_data_dir}
if [ ! -z "${gitlab_user}" ]; then
# Do only if gitlab_user is set
if command -v dropdb >/dev/null; then
echo "Removing Database: gitlab_production"
su ${gitlab_user} -c 'psql gitlab_production -c ""' && su postgres -c "dropdb gitlab_production"
else
echo "dropdb command not found. Hence not removing database."
fi
echo "Removing user: ${gitlab_user}"
id -u ${gitlab_user} && userdel -r ${gitlab_user}
else
echo "gitlab_user not set. Hence not removing user."
fi
rm -rf ${gitlab_ssl_path}
fi
# Remove my changes to the db.
db_purge
fi
nginx_site="/etc/nginx/sites-available/${GITLAB_HOST}"
test -f ${nginx_site} && echo "Found nginx site configuration at ${nginx_site}..."
# 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 ${nginx_site}$ext
rm -f ${gitlab_debian_conf}$ext
rm -f ${gitlab_yml}$ext
rm -f ${gitlab_tmpfiles}$ext
rm -f ${gitlab_shell_config}$ext
done
# remove the configuration file itself
test -f ${nginx_site} && rm -f ${nginx_site}
test -f ${gitlab_debian_conf} && rm -f ${gitlab_debian_conf}
test -f ${gitlab_yml} && rm -f ${gitlab_yml}
test -f ${gitlab_tmpfiles} && rm -f ${gitlab_tmpfiles}
test -f ${gitlab_shell_config} && rm -f ${gitlab_shell_config}
# and finally clear it out from the ucf database
if which ucf >/dev/null; then
test -n "${nginx_site}" && ucf --purge ${nginx_site}
test -n "${gitlab_debian_conf}" && ucf --purge ${gitlab_debian_conf}
test -n "${gitlab_yml}" && ucf --purge ${gitlab_yml}
test -n "${gitlab_tmpfiles}" && ucf --purge ${gitlab_tmpfiles}
test -n "${gitlab_shell_config}" && ucf -purge ${gitlab_shell_config}
fi
if which ucfr >/dev/null; then
test -n "${nginx_site}" && ucfr --purge gitlab ${nginx_site}
test -n "${gitlab_debian_conf}" && ucfr --purge gitlab ${gitlab_debian_conf}
test -n "${gitlab_yml}" && ucfr --purge gitlab ${gitlab_yml}
test -n "${gitlab_tmpfiles}" && ucfr --purge gitlab ${gitlab_tmpfiles}
test -n "${gitlab_shell_config}" && ucfr -purge gitlab ${gitlab_shell_config}
fi
# remove generated assets
rm -rf ${gitlab_data_dir}/public/assets
# Remove private copies of configuration files
rm -f ${nginx_site_private}
rm -f ${gitlab_debian_conf_private}
rm -f ${gitlab_yml_private}
rm -f ${gitlab_tmpfiles_private}
rm -f ${gitlab_shell_config_private}
# Remove systemd service overrides
for service in mailroom unicorn sidekiq workhorse; do
path=/etc/systemd/system/gitlab-${service}.service.d
rm -rf $path
done
# cleanup complete
exit 0
;;
disappear)
if test "$2" != overwriter; then
echo "$0: undocumented call to \`postrm $*'" 1>&2
exit 0
fi
# This package has been completely overwritten by package $3
# (version $4). All our files are already gone from the system.
# This is a special case: neither "prerm remove" nor "postrm remove"
# have been called, because dpkg didn't know that this package would
# disappear until this stage.
:
;;
upgrade)
# About to upgrade FROM THIS VERSION to version $2 of this package.
# "prerm upgrade" has been called for this version, and "preinst
# upgrade" has been called for the new version. Last chance to
# clean up.
:
;;
failed-upgrade)
# About to upgrade from version $2 of this package TO THIS VERSION.
# "prerm upgrade" has been called for the old version, and "preinst
# upgrade" has been called for this version. This is only used if
# the previous version's "postrm upgrade" couldn't handle it and
# returned non-zero. (Fix old postrm bugs here.)
:
;;
abort-install)
# Back out of an attempt to install this package. Undo the effects of
# "preinst install...". There are two sub-cases.
:
if test "${2+set}" = set; then
# When the install was attempted, version $2's configuration
# files were still on the system. Undo the effects of "preinst
# install $2".
:
else
# We were being installed from scratch. Undo the effects of
# "preinst install".
:
fi ;;
abort-upgrade)
# Back out of an attempt to upgrade this package from version $2
# TO THIS VERSION. Undo the effects of "preinst upgrade $2".
:
;;
*) echo "$0: didn't understand being called with \`$1'" 1>&2
exit 0;;
esac
#DEBHELPER#
exit 0