197 lines
6 KiB
Bash
197 lines
6 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
|
|
if [ -f ${gitlab_debian_conf} ]; then . ${gitlab_debian_conf}; fi
|
|
if [ -f ${gitlab_debian_defaults}; then . ${gitlab_debian_defaults}; fi
|
|
|
|
safely_remove() {
|
|
CANDIDATE_DIR=$1
|
|
if [ -n ${CANDIDATE_DIR} ];then
|
|
if [ -e ${CANDIDATE_DIR} ]; then
|
|
echo "Removing $i..."
|
|
rm -rf ${CANDIDATE_DIR}
|
|
fi
|
|
fi
|
|
}
|
|
|
|
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
|
|
if [ -d ${gitlab_data_dir} ]; then
|
|
for i in shared public db repositories secrets.yml Gemfile.lock; do
|
|
if [ -e ${gitlab_data_dir}/$i ]; then rm -rf ${gitlab_data_dir}/$i; fi
|
|
done
|
|
fi
|
|
for i in ${gitlab_log_dir} ${gitlab_cache_path} ${gitlab_pid_path} \
|
|
${gitlab_data_dir}; do
|
|
safely_remove $i
|
|
done
|
|
if [ ! -z "${gitlab_user}" ]; then
|
|
# Do only if gitlab_user is set
|
|
if command -v dropdb >/dev/null; then
|
|
echo "Removing Database: gitlab_production"
|
|
if su ${gitlab_user} -c 'psql gitlab_production -c ""' ; then su postgres -c "dropdb gitlab_production"; fi
|
|
else
|
|
echo "dropdb command not found. Hence not removing database."
|
|
fi
|
|
echo "Removing user: ${gitlab_user}"
|
|
if [ id -u ${gitlab_user} ]; then userdel -r ${gitlab_user}; fi
|
|
else
|
|
echo "gitlab_user not set. Hence not removing user."
|
|
fi
|
|
safely_remove ${gitlab_ssl_path}
|
|
fi
|
|
|
|
# Remove my changes to the db.
|
|
db_purge
|
|
fi
|
|
|
|
nginx_site="/etc/nginx/sites-available/${GITLAB_HOST}"
|
|
|
|
if [ -f ${nginx_site} ]; then echo "Found nginx site configuration at ${nginx_site}..."; 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 ${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
|
|
|
|
for i in ${nginx_site} ${gitlab_debian_conf} ${gitlab_yml} \
|
|
${gitlab_tmpfiles} ${gitlab_shell_config}; do
|
|
# remove the configuration file itself
|
|
safely_remove $i
|
|
# and finally clear it out from the ucf database
|
|
if which ucf >/dev/null; then
|
|
if [ -n "$i" ]; then ucf --purge $i; fi
|
|
fi
|
|
if which ucfr >/dev/null; then
|
|
if [ -n "$i" ]; then ucfr --purge gitlab $i; fi
|
|
fi
|
|
done
|
|
|
|
# remove generated assets
|
|
if [ -n ${gitlab_data_dir}]; then safely_remove ${gitlab_data_dir}/public/assets; fi
|
|
|
|
# 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
|