2016-04-08 17:00:57 +05:30
|
|
|
#! /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
|
|
|
|
|
2017-03-13 14:33:48 +05:30
|
|
|
# Set variables
|
|
|
|
gitlab_debian_conf=/etc/gitlab/gitlab-debian.conf
|
|
|
|
gitlab_debian_defaults=/var/lib/gitlab/gitlab-debian.defaults
|
|
|
|
|
2016-04-08 17:00:57 +05:30
|
|
|
# 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
|
|
|
|
|
2017-03-17 22:27:14 +05:30
|
|
|
# Read debian specific configuration
|
2017-04-17 11:05:50 +05:30
|
|
|
if [ -f ${gitlab_debian_conf} ]; then . ${gitlab_debian_conf}; fi
|
2017-04-17 11:08:17 +05:30
|
|
|
if [ -f ${gitlab_debian_defaults} ]; then . ${gitlab_debian_defaults}; fi
|
2017-04-17 11:05:50 +05:30
|
|
|
|
|
|
|
safely_remove() {
|
|
|
|
CANDIDATE_DIR=$1
|
2017-04-21 15:40:44 +05:30
|
|
|
if [ -n "${CANDIDATE_DIR}" ];then
|
2017-04-17 11:05:50 +05:30
|
|
|
if [ -e ${CANDIDATE_DIR} ]; then
|
2017-04-27 11:23:26 +05:30
|
|
|
echo "Removing: $i"
|
2017-04-17 11:05:50 +05:30
|
|
|
rm -rf ${CANDIDATE_DIR}
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
2017-02-16 15:53:38 +05:30
|
|
|
|
2016-04-08 17:00:57 +05:30
|
|
|
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.
|
|
|
|
:
|
2016-06-03 18:10:06 +05:30
|
|
|
# purge debconf questions
|
|
|
|
if [ -e /usr/share/debconf/confmodule ]; then
|
|
|
|
# Source debconf library.
|
|
|
|
. /usr/share/debconf/confmodule
|
2017-02-16 15:53:38 +05:30
|
|
|
|
|
|
|
# Do you want to remove all data?
|
2017-04-21 13:39:50 +05:30
|
|
|
db_input high gitlab/purge_data || true
|
2017-02-16 15:53:38 +05:30
|
|
|
db_go
|
|
|
|
|
|
|
|
# Check if we should remove data?
|
2017-04-21 13:39:50 +05:30
|
|
|
db_get gitlab/purge_data
|
2017-02-16 15:53:38 +05:30
|
|
|
if [ "${RET}" = "true" ]; then
|
2017-04-21 19:31:09 +05:30
|
|
|
if [ -n "${gitlab_data_dir}" ] && [ -d ${gitlab_data_dir} ]; then
|
2017-03-23 17:16:26 +05:30
|
|
|
for i in shared public db repositories secrets.yml Gemfile.lock; do
|
2017-04-21 19:31:09 +05:30
|
|
|
if [ -e ${gitlab_data_dir}/$i ]; then
|
|
|
|
echo "Removing: ${gitlab_data_dir}/$i"
|
|
|
|
rm -rf ${gitlab_data_dir}/$i; fi
|
2017-03-23 17:16:26 +05:30
|
|
|
done
|
|
|
|
fi
|
2017-04-17 11:05:50 +05:30
|
|
|
for i in ${gitlab_log_dir} ${gitlab_cache_path} ${gitlab_pid_path} \
|
|
|
|
${gitlab_data_dir}; do
|
|
|
|
safely_remove $i
|
|
|
|
done
|
2018-02-28 23:07:08 +05:30
|
|
|
|
|
|
|
# Remove locale directory
|
|
|
|
echo "Removing: ${gitlab_app_root}/app/assets/javascripts/locale"
|
|
|
|
safely_remove ${gitlab_app_root}/app/assets/javascripts/locale
|
|
|
|
|
2017-02-24 11:30:24 +05:30
|
|
|
if [ ! -z "${gitlab_user}" ]; then
|
|
|
|
# Do only if gitlab_user is set
|
2017-03-14 17:27:22 +05:30
|
|
|
if command -v dropdb >/dev/null; then
|
2017-02-24 14:46:32 +05:30
|
|
|
echo "Removing Database: gitlab_production"
|
2017-04-21 15:03:54 +05:30
|
|
|
if runuser -u ${gitlab_user} -- sh -c 'psql gitlab_production -c ""' ; then su postgres -c "dropdb gitlab_production"; fi
|
2017-02-24 13:05:34 +05:30
|
|
|
else
|
|
|
|
echo "dropdb command not found. Hence not removing database."
|
|
|
|
fi
|
2017-02-24 14:46:32 +05:30
|
|
|
echo "Removing user: ${gitlab_user}"
|
2017-04-17 11:08:17 +05:30
|
|
|
if id -u ${gitlab_user}; then userdel -r ${gitlab_user}; fi
|
2017-02-24 13:05:34 +05:30
|
|
|
else
|
|
|
|
echo "gitlab_user not set. Hence not removing user."
|
2017-02-22 12:02:43 +05:30
|
|
|
fi
|
2017-04-17 11:05:50 +05:30
|
|
|
safely_remove ${gitlab_ssl_path}
|
2017-02-16 15:53:38 +05:30
|
|
|
fi
|
|
|
|
|
2016-06-03 18:10:06 +05:30
|
|
|
# Remove my changes to the db.
|
|
|
|
db_purge
|
|
|
|
fi
|
|
|
|
|
|
|
|
nginx_site="/etc/nginx/sites-available/${GITLAB_HOST}"
|
2017-05-11 22:20:51 +05:30
|
|
|
dbconfig_config="/etc/dbconfig-common/gitlab.conf"
|
2016-06-03 18:10:06 +05:30
|
|
|
|
2017-04-17 10:09:55 +05:30
|
|
|
if [ -f ${nginx_site} ]; then echo "Found nginx site configuration at ${nginx_site}..."; fi
|
2016-06-03 18:10:06 +05:30
|
|
|
|
2016-04-08 17:00:57 +05:30
|
|
|
|
|
|
|
# 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
|
2017-02-15 13:41:22 +05:30
|
|
|
rm -f ${gitlab_tmpfiles}$ext
|
|
|
|
rm -f ${gitlab_shell_config}$ext
|
2017-05-11 22:20:51 +05:30
|
|
|
rm -f ${dbconfig_config}$ext
|
2016-04-08 17:00:57 +05:30
|
|
|
done
|
|
|
|
|
2017-04-17 11:05:50 +05:30
|
|
|
for i in ${nginx_site} ${gitlab_debian_conf} ${gitlab_yml} \
|
2017-05-11 22:20:51 +05:30
|
|
|
${gitlab_tmpfiles} ${gitlab_shell_config} ${dbconfig_config}; do
|
2017-04-17 11:05:50 +05:30
|
|
|
# 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
|
2016-04-08 17:29:17 +05:30
|
|
|
|
2016-07-17 23:10:15 +05:30
|
|
|
# remove generated assets
|
2017-04-21 15:40:44 +05:30
|
|
|
if [ -n "${gitlab_data_dir}" ]; then safely_remove ${gitlab_data_dir}/public/assets; fi
|
2017-02-16 15:53:38 +05:30
|
|
|
|
|
|
|
# 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}
|
2016-07-17 23:10:15 +05:30
|
|
|
|
2017-02-16 17:35:01 +05:30
|
|
|
# Remove systemd service overrides
|
|
|
|
for service in mailroom unicorn sidekiq workhorse; do
|
|
|
|
path=/etc/systemd/system/gitlab-${service}.service.d
|
|
|
|
rm -rf $path
|
|
|
|
done
|
|
|
|
|
2016-06-03 18:10:06 +05:30
|
|
|
# cleanup complete
|
2016-04-08 17:29:17 +05:30
|
|
|
exit 0
|
2016-04-08 17:00:57 +05:30
|
|
|
|
|
|
|
;;
|
|
|
|
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
|