199 lines
6.5 KiB
Bash
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
|