[mod] utils/morty.sh - check a morty installation

Impplement a script to check a morty installation::

   ./utils/morty.sh install check

Related-to: https://github.com/searxng/searxng/issues/450
Related-to: https://github.com/searxng/searxng/pull/446#issuecomment-954599668

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2021-10-29 17:40:37 +02:00 committed by Markus Heiser
parent d8d6c3d4ee
commit f3c161f72a
1 changed files with 44 additions and 32 deletions

View File

@ -28,7 +28,8 @@ SERVICE_GROUP="${SERVICE_USER}"
SERVICE_ENV_DEBUG=false SERVICE_ENV_DEBUG=false
GO_ENV="${SERVICE_HOME}/.go_env" GO_ENV="${SERVICE_HOME}/.go_env"
GO_PKG_URL="https://golang.org/dl/go1.17.2.linux-amd64.tar.gz" GO_VERSION="go1.17.2"
GO_PKG_URL="https://golang.org/dl/${GO_VERSION}.linux-amd64.tar.gz"
GO_TAR=$(basename "$GO_PKG_URL") GO_TAR=$(basename "$GO_PKG_URL")
# shellcheck disable=SC2034 # shellcheck disable=SC2034
@ -47,7 +48,7 @@ usage() {
cat <<EOF cat <<EOF
usage:: usage::
$(basename "$0") shell $(basename "$0") shell
$(basename "$0") install [all|user] $(basename "$0") install [all|check|user]
$(basename "$0") update [morty] $(basename "$0") update [morty]
$(basename "$0") remove [all] $(basename "$0") remove [all]
$(basename "$0") activate [service] $(basename "$0") activate [service]
@ -61,8 +62,10 @@ usage::
shell shell
start interactive shell from user ${SERVICE_USER} start interactive shell from user ${SERVICE_USER}
install / remove install / remove
all: complete setup of morty service :all: complete setup of morty service
user: add/remove service user '$SERVICE_USER' ($SERVICE_HOME) :user: add/remove service user '$SERVICE_USER' ($SERVICE_HOME)
install
:check: check the morty installation
update morty update morty
Update morty installation ($SERVICE_HOME) Update morty installation ($SERVICE_HOME)
activate service activate service
@ -147,6 +150,10 @@ main() {
sudo_or_exit sudo_or_exit
case $2 in case $2 in
all) install_all ;; all) install_all ;;
check)
rst_title "Check morty installation" part
install_check
;;
user) assert_user ;; user) assert_user ;;
*) usage "$_usage"; exit 42;; *) usage "$_usage"; exit 42;;
esac ;; esac ;;
@ -246,6 +253,38 @@ install_all() {
} }
install_check() {
if service_account_is_available "$SERVICE_USER"; then
info_msg "service account $SERVICE_USER available."
else
err_msg "service account $SERVICE_USER not available!"
fi
if go_is_available "$SERVICE_USER"; then
info_msg "~$SERVICE_USER: go is installed"
else
err_msg "~$SERVICE_USER: go is not installed"
fi
if morty_is_installed; then
info_msg "~$SERVICE_USER: morty app is installed"
else
err_msg "~$SERVICE_USER: morty app is not installed!"
fi
if ! service_is_available "http://${MORTY_LISTEN}" ; then
err_msg "Morty is not listening on: http://${MORTY_LISTEN}"
echo -e "${_Green}stop with [${_BCyan}CTRL-C${_Green}] or .."
wait_key
fi
if ! service_is_available "${PUBLIC_URL_MORTY}"; then
warn_msg "Public service at ${PUBLIC_URL_MORTY} is not available!"
if ! in_container; then
warn_msg "Check if public name is correct and routed or use the public IP from above."
fi
fi
}
remove_all() { remove_all() {
rst_title "De-Install $SERVICE_NAME (service)" rst_title "De-Install $SERVICE_NAME (service)"
@ -342,34 +381,7 @@ sourced ${DOT_CONFIG} :
EOF EOF
install_log_searx_instance install_log_searx_instance
if service_account_is_available "$SERVICE_USER"; then install_check
info_msg "service account $SERVICE_USER available."
else
err_msg "service account $SERVICE_USER not available!"
fi
if go_is_available "$SERVICE_USER"; then
info_msg "~$SERVICE_USER: go is installed"
else
err_msg "~$SERVICE_USER: go is not installed"
fi
if morty_is_installed; then
info_msg "~$SERVICE_USER: morty app is installed"
else
err_msg "~$SERVICE_USER: morty app is not installed!"
fi
if ! service_is_available "http://${MORTY_LISTEN}" ; then
err_msg "Morty is not listening on: http://${MORTY_LISTEN}"
echo -e "${_Green}stop with [${_BCyan}CTRL-C${_Green}] or .."
wait_key
fi
if ! service_is_available "${PUBLIC_URL_MORTY}"; then
warn_msg "Public service at ${PUBLIC_URL_MORTY} is not available!"
if ! in_container; then
warn_msg "Check if public name is correct and routed or use the public IP from above."
fi
fi
if in_container; then if in_container; then
lxc_suite_info lxc_suite_info