123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #!/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 "$@"
- # ----------------------------------------------------------------------------
|