diff --git a/configs/airootfs/root/.automated_script.sh b/configs/airootfs/root/.automated_script.sh index df63c61..0eaad5f 100644 --- a/configs/airootfs/root/.automated_script.sh +++ b/configs/airootfs/root/.automated_script.sh @@ -1,48 +1,48 @@ #!/usr/bin/env bash # # Live ISO entry point on tty1: set up the live VT, run the configurator -# wizard, then hand off to the Python install orchestrator. All install-phase -# logic lives in orchestrator/ (omarchy-iso package) and the omarchy-iso-* -# bash helpers; this shim only dispatches. +# wizard with full TTY access, then start broad logging and hand off to the +# Python install orchestrator. set -euo pipefail [[ $(tty) == /dev/tty1 ]] || exit 0 -# Live ISO helpers (gum styling, padding constants, etc.) used by the -# configurator. Sourced here so the configurator inherits the environment. export OMARCHY_MIRROR="$(cat /root/omarchy_mirror)" export OMARCHY_PATH=/usr/share/omarchy export OMARCHY_INSTALL=$OMARCHY_PATH/install export OMARCHY_INSTALL_LOG_FILE=/var/log/omarchy-install.log source "$OMARCHY_INSTALL/helpers/all.sh" -# Tokyo Night palette so the live VT matches the installed look. Must run -# before we redirect stdout so the OSC palette escapes reach the tty. +# Tokyo Night palette so the live VT matches the installed look. set_tokyo_night_colors() { - if [[ $(tty) == /dev/tty* ]]; then - echo -en "\e]P01a1b26"; echo -en "\e]P1f7768e"; echo -en "\e]P29ece6a" - echo -en "\e]P3e0af68"; echo -en "\e]P47aa2f7"; echo -en "\e]P5bb9af7" - echo -en "\e]P67dcfff"; echo -en "\e]P7a9b1d6"; echo -en "\e]P8414868" - echo -en "\e]P9f7768e"; echo -en "\e]PA9ece6a"; echo -en "\e]PBe0af68" - echo -en "\e]PC7aa2f7"; echo -en "\e]PDbb9af7"; echo -en "\e]PE7dcfff" - echo -en "\e]PFc0caf5" - echo -en "\033[0m" - clear - fi + echo -en "\e]P01a1b26"; echo -en "\e]P1f7768e"; echo -en "\e]P29ece6a" + echo -en "\e]P3e0af68"; echo -en "\e]P47aa2f7"; echo -en "\e]P5bb9af7" + echo -en "\e]P67dcfff"; echo -en "\e]P7a9b1d6"; echo -en "\e]P8414868" + echo -en "\e]P9f7768e"; echo -en "\e]PA9ece6a"; echo -en "\e]PBe0af68" + echo -en "\e]PC7aa2f7"; echo -en "\e]PDbb9af7"; echo -en "\e]PE7dcfff" + echo -en "\e]PFc0caf5" + echo -en "\033[0m" + clear } - set_tokyo_night_colors -# Capture all subsequent output (configurator + orchestrator) to the install -# log with CSI escape sequences stripped. omarchy-iso-install also tees its -# Python orchestrator output to the same log file (raw), so the orchestrator -# portion appears twice in the log — once raw, once stripped. Acceptable. -mkdir -p /var/log -touch /var/log/omarchy-install.log -exec > >(tee >(sed -u 's/\x1b\[[0-9;]*[a-zA-Z]//g' >>/var/log/omarchy-install.log) 2>/dev/null) 2>&1 +# Tell gum and friends the actual terminal size. stty size on /dev/tty is +# more reliable than tput when stdout could end up redirected. +if size=$(stty size /dev/null); then + export LINES="${size%% *}" + export COLUMNS="${size##* }" +fi +# Configurator phase: real TTY on both streams. No tee/pipe. +mkdir -p /var/log +touch "$OMARCHY_INSTALL_LOG_FILE" cd /root -./configurator +./configurator >/dev/tty 2>/dev/tty >(tee >(sed -u 's/\x1b\[[0-9;]*[a-zA-Z]//g' >>"$OMARCHY_INSTALL_LOG_FILE") >/dev/tty) 2>&1 # Absolute paths because omarchy-iso-install cd's into /usr/share/omarchy-iso # before exec'ing python; relative paths would resolve against the wrong dir. diff --git a/configs/airootfs/usr/local/bin/omarchy-iso-install b/configs/airootfs/usr/local/bin/omarchy-iso-install index f2a2a46..9307046 100755 --- a/configs/airootfs/usr/local/bin/omarchy-iso-install +++ b/configs/airootfs/usr/local/bin/omarchy-iso-install @@ -2,18 +2,14 @@ # # Live-ISO entry point for the Omarchy install orchestrator. Invoked from # /root/.automated_script.sh after the configurator wizard has produced its -# user_*.json / user_*.txt files. Tees the full output to -# /var/log/omarchy-install.log so omarchy-upload-log can pick it up. +# user_*.json / user_*.txt files. The outer shim owns install logging. set -eEo pipefail -mkdir -p /var/log -touch /var/log/omarchy-install.log - # Patch archinstall BEFORE Python loads it. orchestrator/main.py top-level # imports archinstall_adapter, which top-level imports archinstall.*; patching # inside a phase would be too late (bytecode already loaded). omarchy-iso-patch-archinstall cd /usr/share/omarchy-iso -exec python -m orchestrator.main "$@" 2>&1 | tee -a /var/log/omarchy-install.log +exec python -m orchestrator.main "$@"