Address momus review of OMARCHY_INSTALL_MODE work
- install.sh: use realpath to follow symlinks when deriving OMARCHY_PATH from script location. Logical pwd left dev-link symlink chains pointing at the wrong dir; realpath resolves to the underlying checkout. - install/helpers/mode.sh: validate explicit OMARCHY_INSTALL_MODE values and exit on typos. Also export_legacy_mode_flags now UNSETS the contradictory legacy flag for each mode so unmigrated callers can't see both OMARCHY_CHROOT_INSTALL=1 and OMARCHY_ONLINE_INSTALL=true. - install/helpers/errors.sh: retry uses "$OMARCHY_PATH/install.sh" and preserves OMARCHY_INSTALL_MODE explicitly; the previous hardcoded ~/.local/share/omarchy/install.sh broke package-mode retries. - bin/omarchy-install-mode: soften the summary; the helper only knows the current env, not any persisted post-install state.
This commit is contained in:
@@ -1,11 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Print the install mode the installer was last invoked with
|
||||
# omarchy:summary=Print the OMARCHY_INSTALL_MODE in the current env
|
||||
# omarchy:group=install
|
||||
|
||||
# Used by scripts that need to branch on whether Omarchy was bootstrapped
|
||||
# via ISO (iso-chroot), pacman install (online-package), or boot.sh
|
||||
# (online-git). The current install.sh sets this; persisted state lives in
|
||||
# /var/lib/omarchy/install-mode if Chunk 6+ chooses to record it. For now
|
||||
# we echo whatever is in the current env.
|
||||
# install.sh exports this during the install flow. Not persisted post-install,
|
||||
# so this prints 'unknown' outside the installer.
|
||||
echo "${OMARCHY_INSTALL_MODE:-unknown}"
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ set -eEo pipefail
|
||||
# whether it's run from /usr/share/omarchy/install.sh (package mode) or
|
||||
# $HOME/.local/share/omarchy/install.sh (git mode). An explicit OMARCHY_PATH
|
||||
# in the caller env still wins.
|
||||
_OMARCHY_INSTALLER_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
_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="/var/log/omarchy-install.log"
|
||||
|
||||
@@ -122,7 +122,7 @@ catch_errors() {
|
||||
|
||||
case "$choice" in
|
||||
"Retry installation")
|
||||
bash ~/.local/share/omarchy/install.sh
|
||||
OMARCHY_INSTALL_MODE="$OMARCHY_INSTALL_MODE" bash "$OMARCHY_PATH/install.sh"
|
||||
break
|
||||
;;
|
||||
"View full log")
|
||||
|
||||
+18
-2
@@ -4,6 +4,15 @@
|
||||
|
||||
detect_install_mode() {
|
||||
if [[ -n ${OMARCHY_INSTALL_MODE:-} ]]; then
|
||||
case $OMARCHY_INSTALL_MODE in
|
||||
iso-chroot|online-package|online-git) ;;
|
||||
*)
|
||||
echo "Error: invalid OMARCHY_INSTALL_MODE=$OMARCHY_INSTALL_MODE" >&2
|
||||
echo " must be one of: iso-chroot, online-package, online-git" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
export OMARCHY_INSTALL_MODE
|
||||
return
|
||||
fi
|
||||
|
||||
@@ -22,15 +31,22 @@ install_mode_is() {
|
||||
[[ ${OMARCHY_INSTALL_MODE:-} == "$1" ]]
|
||||
}
|
||||
|
||||
# Sets OMARCHY_CHROOT_INSTALL=1 and OMARCHY_ONLINE_INSTALL=true so callers
|
||||
# that still check the legacy vars keep working through the transition.
|
||||
# Synchronize the legacy vars to the canonical mode so callers that still
|
||||
# check OMARCHY_CHROOT_INSTALL / OMARCHY_ONLINE_INSTALL agree with us
|
||||
# (including unsetting contradictory ones).
|
||||
export_legacy_mode_flags() {
|
||||
case ${OMARCHY_INSTALL_MODE:-} in
|
||||
iso-chroot)
|
||||
export OMARCHY_CHROOT_INSTALL=1
|
||||
unset OMARCHY_ONLINE_INSTALL
|
||||
;;
|
||||
online-git)
|
||||
export OMARCHY_ONLINE_INSTALL=true
|
||||
unset OMARCHY_CHROOT_INSTALL
|
||||
;;
|
||||
online-package)
|
||||
unset OMARCHY_CHROOT_INSTALL
|
||||
unset OMARCHY_ONLINE_INSTALL
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user