#!/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 cat 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

texise_log "Installing TeXise R14.28.20 Build Fix 51.4 from ${TEXISE_SOURCE_ROOT}"
node "${TEXISE_SOURCE_ROOT}/scripts/repair-buildfix50-source.mjs" "${TEXISE_SOURCE_ROOT}"
node "${TEXISE_SOURCE_ROOT}/scripts/repair-buildfix51-source.mjs" "${TEXISE_SOURCE_ROOT}"
node "${TEXISE_SOURCE_ROOT}/scripts/repair-buildfix51-1-source.mjs" "${TEXISE_SOURCE_ROOT}"
node "${TEXISE_SOURCE_ROOT}/scripts/repair-buildfix51-2-source.mjs" "${TEXISE_SOURCE_ROOT}"
node "${TEXISE_SOURCE_ROOT}/scripts/repair-buildfix51-3-source.mjs" "${TEXISE_SOURCE_ROOT}"
node "${TEXISE_SOURCE_ROOT}/scripts/repair-buildfix51-4-source.mjs" "${TEXISE_SOURCE_ROOT}"
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 'Installation complete.'
texise_log "Source tree: ${TEXISE_INSTALL_ROOT}"
texise_log "Apache document root: ${TEXISE_DIST_DIR}"
texise_log "Trusted configuration: ${TEXISE_CONFIG_DIR}/"
texise_log 'Web application: https://www.texise.com'
