Validate --local-source paths before any sudo work

Also includes the build-iso.sh cleanup that I prepared earlier but
forgot to stage (replacing the inline ugly $(...) conditional pipe
with a normal if/then-fi block).
This commit is contained in:
Ryan Hughes committed 2026-05-20 21:36:31 -04:00
1 parent e427304f29
commit b34f53629d
2 files changed
+21 -10

No files matched your search

+10 -5
View File
@@ -49,6 +49,14 @@ while [[ $# -gt 0 ]]; do
esac
done
# Validate local-source paths up front (before any sudo / network work).
if [[ -n $LOCAL_INSTALLER_PATH ]]; then
[[ -d $LOCAL_INSTALLER_PATH ]] || { echo "Error: installer checkout not found at $LOCAL_INSTALLER_PATH" >&2; exit 1; }
[[ -d $LOCAL_PKGS_PATH ]] || { echo "Error: pkgs checkout not found at $LOCAL_PKGS_PATH" >&2; exit 1; }
LOCAL_INSTALLER_PATH=$(realpath "$LOCAL_INSTALLER_PATH")
LOCAL_PKGS_PATH=$(realpath "$LOCAL_PKGS_PATH")
fi
# Clear out old packages
sudo rm -rf /var/cache/pacman/pkg/*
@@ -80,12 +88,9 @@ DOCKER_ARGS=(
-v "$BUILD_ROOT/configs:/configs:ro"
)
# Mount the local checkouts when --local-source was passed.
# Mount the local checkouts when --local-source was passed (paths already
# validated/resolved above).
if [[ -n $LOCAL_INSTALLER_PATH ]]; then
[[ -d $LOCAL_INSTALLER_PATH ]] || { echo "Error: installer checkout not found at $LOCAL_INSTALLER_PATH" >&2; exit 1; }
[[ -d $LOCAL_PKGS_PATH ]] || { echo "Error: pkgs checkout not found at $LOCAL_PKGS_PATH" >&2; exit 1; }
LOCAL_INSTALLER_PATH=$(realpath "$LOCAL_INSTALLER_PATH")
LOCAL_PKGS_PATH=$(realpath "$LOCAL_PKGS_PATH")
DOCKER_ARGS+=(
-v "$LOCAL_INSTALLER_PATH:/omarchy-installer:ro"
-v "$LOCAL_PKGS_PATH:/omarchy-pkgs:ro"