Files
arthur-os/install.sh
T
Ryan Hughes df645a202d Simplify finalize.sh and install.sh's preflight ownership
finalize.sh just does the in-target work: env setup, source helpers,
mark current migrations as done (idempotent), run packaging/config/
login/post-install. No preflight orchestration, no install_mode_is
offline branches.

install.sh (online) inlines the preflight bits that are online-specific:
guard.sh, begin.sh, show-env.sh. The first-run-mode setup that used to
live in preflight (offline-only) moves to an orchestrator phase in a
later chunk; disable-mkinitcpio.sh is obsolete entirely because the C3
phase ordering means the limine UKI hook fires exactly once with
correct config in place.

install/preflight/{all,disable-mkinitcpio,first-run-mode}.sh still
exist on disk but are no longer sourced. They'll get removed in a
later chunk once the orchestrator absorbs first-run-mode.
2026-06-04 18:34:35 -04:00

39 lines
1.6 KiB
Bash

#!/bin/bash
#
# Online install entry point. Run by the user on an existing Arch system to
# install / refresh Omarchy. Guards the host, ensures the omarchy runtime is
# up to date, then hands off to finalize.sh for the actual configure work.
#
# Offline installs (from the ISO) skip this script entirely: the Python
# orchestrator owns disk, base, bootloader, and package install before calling
# finalize.sh directly in the chroot.
set -eEo pipefail
_OMARCHY_INSTALLER_DIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
export OMARCHY_PATH="${OMARCHY_PATH:-$_OMARCHY_INSTALLER_DIR}"
export OMARCHY_INSTALL="$OMARCHY_PATH/install"
export OMARCHY_INSTALL_LOG_FILE="${OMARCHY_INSTALL_LOG_FILE:-/var/log/omarchy-install.log}"
export PATH="$OMARCHY_PATH/bin:$PATH"
source "$OMARCHY_INSTALL/helpers/mode.sh"
detect_install_mode
export_legacy_mode_flags
source "$OMARCHY_INSTALL/helpers/all.sh"
# Online-only setup: sanity-check the host, show the logo, start capturing
# the install log to /var/log. The orchestrator handles all of this itself
# in offline mode, so finalize.sh's caller environment looks the same in
# both modes by the time finalize.sh runs.
source "$OMARCHY_INSTALL/preflight/guard.sh"
source "$OMARCHY_INSTALL/preflight/begin.sh"
run_logged "$OMARCHY_INSTALL/preflight/show-env.sh"
# Install/update the omarchy runtime + the default install set.
_omarchy_runtime_pkg="${OMARCHY_RUNTIME_PACKAGE:-omarchy}"
mapfile -t _omarchy_base_pkgs < <(grep -v '^#\|^$' "$OMARCHY_PATH/install/omarchy-base.packages")
sudo pacman -Syu --noconfirm --needed "$_omarchy_runtime_pkg" "${_omarchy_base_pkgs[@]}"
exec bash "$OMARCHY_PATH/finalize.sh"