#!/usr/bin/env bash set -Eeuo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" # shellcheck source=install/lib/common.sh source "${SCRIPT_DIR}/lib/common.sh" # shellcheck source=install/lib/logging.sh source "${SCRIPT_DIR}/lib/logging.sh" # shellcheck source=install/lib/packages.sh source "${SCRIPT_DIR}/lib/packages.sh" # shellcheck source=install/lib/services.sh source "${SCRIPT_DIR}/lib/services.sh" # shellcheck source=install/lib/files.sh source "${SCRIPT_DIR}/lib/files.sh" # shellcheck source=install/lib/validation.sh source "${SCRIPT_DIR}/lib/validation.sh" atlas_set_script_name "bootstrap.sh" atlas_install_error_trap atlas_install_cleanup_trap RUN_VALIDATION=0 INIT_LOG=0 ATLAS_INSTALL_LOG_DIR="/var/log/atlas/install" usage() { cat <<'USAGE' Usage: install/bootstrap.sh [options] Phase 2A bootstrap scaffold. This command does not install packages, alter services, change firewall rules, or modify system configuration. Options: --help Show this help text. --version Show script/framework version. --dry-run Show intended actions without making changes. --verbose Print additional diagnostic output. --log Initialise a timestamped installer log file. --validate-host Run the read-only host validation script. USAGE } while [[ "$#" -gt 0 ]]; do case "$1" in --help) usage exit "${ATLAS_EXIT_OK}" ;; --version) atlas_print_version exit "${ATLAS_EXIT_OK}" ;; --dry-run) atlas_enable_dry_run ;; --verbose) atlas_enable_verbose ;; --log) INIT_LOG=1 ;; --validate-host) RUN_VALIDATION=1 ;; *) atlas_usage_error "Unknown option: $1" exit "${ATLAS_EXIT_USAGE}" ;; esac shift done if [[ "$INIT_LOG" == "1" ]]; then atlas_init_log_file "$ATLAS_INSTALL_LOG_DIR" "bootstrap" fi atlas_log_info "Atlas bootstrap scaffold" atlas_log_info "Repository root: ${REPO_ROOT}" atlas_log_info "Dry-run mode: ${ATLAS_DRY_RUN}" atlas_require_command bash atlas_require_command git atlas_require_command systemctl atlas_require_command findmnt atlas_require_command df atlas_log_info "Planned future phase directory: ${SCRIPT_DIR}/phases" atlas_log_info "No component installers are invoked during Phase 2A" if [[ "$RUN_VALIDATION" == "1" ]]; then atlas_log_info "Running read-only host validation" "${REPO_ROOT}/scripts/system/validate-host.sh" else atlas_log_info "Host validation not requested; use --validate-host to run it" fi atlas_log_ok "Bootstrap scaffold completed"