#! /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 and export debian specific configuration test -f ${gitlab_debian_conf} && export $(cat ${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 [ -x /usr/bin/dropdb ]; 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