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
|
#!/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
|
# omarchy:group=install
|
||||||
|
|
||||||
# Used by scripts that need to branch on whether Omarchy was bootstrapped
|
# install.sh exports this during the install flow. Not persisted post-install,
|
||||||
# via ISO (iso-chroot), pacman install (online-package), or boot.sh
|
# so this prints 'unknown' outside the installer.
|
||||||
# (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.
|
|
||||||
echo "${OMARCHY_INSTALL_MODE:-unknown}"
|
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
|
# 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
|
# $HOME/.local/share/omarchy/install.sh (git mode). An explicit OMARCHY_PATH
|
||||||
# in the caller env still wins.
|
# 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_PATH="${OMARCHY_PATH:-$_OMARCHY_INSTALLER_DIR}"
|
||||||
export OMARCHY_INSTALL="$OMARCHY_PATH/install"
|
export OMARCHY_INSTALL="$OMARCHY_PATH/install"
|
||||||
export OMARCHY_INSTALL_LOG_FILE="/var/log/omarchy-install.log"
|
export OMARCHY_INSTALL_LOG_FILE="/var/log/omarchy-install.log"
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ catch_errors() {
|
|||||||
|
|
||||||
case "$choice" in
|
case "$choice" in
|
||||||
"Retry installation")
|
"Retry installation")
|
||||||
bash ~/.local/share/omarchy/install.sh
|
OMARCHY_INSTALL_MODE="$OMARCHY_INSTALL_MODE" bash "$OMARCHY_PATH/install.sh"
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
"View full log")
|
"View full log")
|
||||||
|
|||||||
+18
-2
@@ -4,6 +4,15 @@
|
|||||||
|
|
||||||
detect_install_mode() {
|
detect_install_mode() {
|
||||||
if [[ -n ${OMARCHY_INSTALL_MODE:-} ]]; then
|
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
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -22,15 +31,22 @@ install_mode_is() {
|
|||||||
[[ ${OMARCHY_INSTALL_MODE:-} == "$1" ]]
|
[[ ${OMARCHY_INSTALL_MODE:-} == "$1" ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sets OMARCHY_CHROOT_INSTALL=1 and OMARCHY_ONLINE_INSTALL=true so callers
|
# Synchronize the legacy vars to the canonical mode so callers that still
|
||||||
# that still check the legacy vars keep working through the transition.
|
# check OMARCHY_CHROOT_INSTALL / OMARCHY_ONLINE_INSTALL agree with us
|
||||||
|
# (including unsetting contradictory ones).
|
||||||
export_legacy_mode_flags() {
|
export_legacy_mode_flags() {
|
||||||
case ${OMARCHY_INSTALL_MODE:-} in
|
case ${OMARCHY_INSTALL_MODE:-} in
|
||||||
iso-chroot)
|
iso-chroot)
|
||||||
export OMARCHY_CHROOT_INSTALL=1
|
export OMARCHY_CHROOT_INSTALL=1
|
||||||
|
unset OMARCHY_ONLINE_INSTALL
|
||||||
;;
|
;;
|
||||||
online-git)
|
online-git)
|
||||||
export OMARCHY_ONLINE_INSTALL=true
|
export OMARCHY_ONLINE_INSTALL=true
|
||||||
|
unset OMARCHY_CHROOT_INSTALL
|
||||||
|
;;
|
||||||
|
online-package)
|
||||||
|
unset OMARCHY_CHROOT_INSTALL
|
||||||
|
unset OMARCHY_ONLINE_INSTALL
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user