| 
							
							#!/usr/bin/env bash
 | 
						
						
						
						
							 | 
							
							# SPDX-License-Identifier: AGPL-3.0-or-later
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							# shellcheck source=utils/lib.sh
 | 
						
						
						
						
							 | 
							
							source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							# ----------------------------------------------------------------------------
 | 
						
						
						
						
							 | 
							
							# config
 | 
						
						
						
						
							 | 
							
							# ----------------------------------------------------------------------------
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							PUBLIC_URL="${PUBLIC_URL:-${SEARXNG_URL}}"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							MORTY_LISTEN="${MORTY_LISTEN:-127.0.0.1:3000}"
 | 
						
						
						
						
							 | 
							
							PUBLIC_URL_PATH_MORTY="${PUBLIC_URL_PATH_MORTY:-/morty/}"
 | 
						
						
						
						
							 | 
							
							PUBLIC_URL_MORTY="${PUBLIC_URL_MORTY:-$(echo "$PUBLIC_URL" |  sed -e's,^\(.*://[^/]*\).*,\1,g')${PUBLIC_URL_PATH_MORTY}}"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							SERVICE_NAME="morty"
 | 
						
						
						
						
							 | 
							
							SERVICE_USER="${SERVICE_USER:-${SERVICE_NAME}}"
 | 
						
						
						
						
							 | 
							
							SERVICE_SYSTEMD_UNIT="${SYSTEMD_UNITS}/${SERVICE_NAME}.service"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							# Apache Settings
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							APACHE_MORTY_SITE="morty.conf"
 | 
						
						
						
						
							 | 
							
							NGINX_MORTY_SITE="morty.conf"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							# ----------------------------------------------------------------------------
 | 
						
						
						
						
							 | 
							
							usage() {
 | 
						
						
						
						
							 | 
							
							# ----------------------------------------------------------------------------
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    # shellcheck disable=SC1117
 | 
						
						
						
						
							 | 
							
							    cat <<EOF
 | 
						
						
						
						
							 | 
							
							usage::
 | 
						
						
						
						
							 | 
							
							  $(basename "$0") remove all
 | 
						
						
						
						
							 | 
							
							  $(basename "$0") apache remove
 | 
						
						
						
						
							 | 
							
							  $(basename "$0") nginx  remove
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							remove all     : drop all components of the morty service
 | 
						
						
						
						
							 | 
							
							apache remove  : drop apache site ${APACHE_MORTY_SITE}
 | 
						
						
						
						
							 | 
							
							nginx  remove  : drop nginx site ${NGINX_MORTY_SITE}
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							environment:
 | 
						
						
						
						
							 | 
							
							  PUBLIC_URL_MORTY   : ${PUBLIC_URL_MORTY}
 | 
						
						
						
						
							 | 
							
							EOF
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    [[ -n ${1} ]] &&  err_msg "$1"
 | 
						
						
						
						
							 | 
							
							}
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							main() {
 | 
						
						
						
						
							 | 
							
							    local _usage="ERROR: unknown or missing $1 command $2"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    case $1 in
 | 
						
						
						
						
							 | 
							
							        -h|--help) usage; exit 0;;
 | 
						
						
						
						
							 | 
							
							        remove)
 | 
						
						
						
						
							 | 
							
							            sudo_or_exit
 | 
						
						
						
						
							 | 
							
							            case $2 in
 | 
						
						
						
						
							 | 
							
							                all) remove_all;;
 | 
						
						
						
						
							 | 
							
							                *) usage "$_usage"; exit 42;;
 | 
						
						
						
						
							 | 
							
							            esac ;;
 | 
						
						
						
						
							 | 
							
							        apache)
 | 
						
						
						
						
							 | 
							
							            sudo_or_exit
 | 
						
						
						
						
							 | 
							
							            case $2 in
 | 
						
						
						
						
							 | 
							
							                remove) remove_apache_site ;;
 | 
						
						
						
						
							 | 
							
							                *) usage "$_usage"; exit 42;;
 | 
						
						
						
						
							 | 
							
							            esac ;;
 | 
						
						
						
						
							 | 
							
							        nginx)
 | 
						
						
						
						
							 | 
							
							            sudo_or_exit
 | 
						
						
						
						
							 | 
							
							            case $2 in
 | 
						
						
						
						
							 | 
							
							                remove) remove_nginx_site ;;
 | 
						
						
						
						
							 | 
							
							                *) usage "$_usage"; exit 42;;
 | 
						
						
						
						
							 | 
							
							            esac ;;
 | 
						
						
						
						
							 | 
							
							        *) usage "ERROR: unknown or missing command $1"; exit 42;;
 | 
						
						
						
						
							 | 
							
							    esac
 | 
						
						
						
						
							 | 
							
							}
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							remove_all() {
 | 
						
						
						
						
							 | 
							
							    rst_title "De-Install $SERVICE_NAME (service)"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    rst_para "\
 | 
						
						
						
						
							 | 
							
							It goes without saying that this script can only be used to remove
 | 
						
						
						
						
							 | 
							
							installations that were installed with this script."
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    if systemd_remove_service "${SERVICE_NAME}" "${SERVICE_SYSTEMD_UNIT}"; then
 | 
						
						
						
						
							 | 
							
							        drop_service_account "${SERVICE_USER}"
 | 
						
						
						
						
							 | 
							
							    fi
 | 
						
						
						
						
							 | 
							
							}
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							remove_apache_site() {
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    rst_title "Remove Apache site $APACHE_MORTY_SITE"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    rst_para "\
 | 
						
						
						
						
							 | 
							
							This removes apache site ${APACHE_MORTY_SITE}."
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    ! apache_is_installed && err_msg "Apache is not installed."
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    if ! ask_yn "Do you really want to continue?" Yn; then
 | 
						
						
						
						
							 | 
							
							        return
 | 
						
						
						
						
							 | 
							
							    fi
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    apache_remove_site "$APACHE_MORTY_SITE"
 | 
						
						
						
						
							 | 
							
							}
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							remove_nginx_site() {
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    rst_title "Remove nginx site $NGINX_MORTY_SITE"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    rst_para "\
 | 
						
						
						
						
							 | 
							
							This removes nginx site ${NGINX_MORTY_SITE}."
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    ! nginx_is_installed && err_msg "nginx is not installed."
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    if ! ask_yn "Do you really want to continue?" Yn; then
 | 
						
						
						
						
							 | 
							
							        return
 | 
						
						
						
						
							 | 
							
							    fi
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							    nginx_remove_app "$NGINX_MORTY_SITE"
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							}
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							# ----------------------------------------------------------------------------
 | 
						
						
						
						
							 | 
							
							main "$@"
 | 
						
						
						
						
							 | 
							
							# ----------------------------------------------------------------------------
 |