#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=lib/texise-deploy.sh
source "${SCRIPT_DIR}/lib/texise-deploy.sh"

texise_require_root
for command_name in cmp cp dirname find ln mv od rmdir rm stat tr a2dissite a2enmod a2ensite apache2ctl curl docker getent grep groupadd install g++ journalctl make node npm openssl python3 readlink systemctl systemd-run tar useradd usermod; do
  texise_require_command "${command_name}"
done
texise_require_node_version
texise_require_package_manager
texise_require_source_location

[[ -d "${TEXISE_CONFIG_DIR}" ]] || texise_die 'TeXise is not installed. Run scripts/install.sh first.'

texise_log 'Upgrading TeXise in place; /etc/texise and the source tree will be preserved.'
texise_create_service_user
texise_create_directories
texise_prepare_source_permissions
texise_install_config
texise_install_signing_keys
texise_normalize_config_permissions
texise_install_dependencies
texise_build_frontend
texise_prepare_template_runtime_permissions
texise_activate_runtime_server
texise_install_admin_cli
texise_install_systemd
texise_install_apache
texise_restart_services
texise_health_check
texise_log 'Upgrade complete.'
