| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | #!/usr/bin/env bash# SPDX-License-Identifier: AGPL-3.0-or-later# shellcheck source=utils/lib.shsource "$(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 SettingsAPACHE_MORTY_SITE="morty.conf"NGINX_MORTY_SITE="morty.conf"# ----------------------------------------------------------------------------usage() {# ----------------------------------------------------------------------------    # shellcheck disable=SC1117    cat <<EOFusage::  $(basename "$0") remove all  $(basename "$0") apache remove  $(basename "$0") nginx  removeremove all     : drop all components of the morty serviceapache 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 removeinstallations 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 "$@"# ----------------------------------------------------------------------------
 |