diff --git a/bin/gstack-capy-install b/bin/gstack-capy-install index 4afc9a153..41e09ec4a 100755 --- a/bin/gstack-capy-install +++ b/bin/gstack-capy-install @@ -149,6 +149,7 @@ done INSTALL_VERSION=$(gstack_bun_install_version) || stop BUN_INSTALL_VERSION_INVALID "GSTACK_BUN_INSTALL_VERSION=$INSTALL_VERSION is not a verified Bun at or above gstack's supported minimum $GSTACK_BUN_TESTED (verified archives: $GSTACK_BUN_VERIFIED)" "unset GSTACK_BUN_INSTALL_VERSION, or set it to one of: $GSTACK_BUN_VERIFIED" [ -n "$PROJECT" ] || { PROJECT=$(cd "$ORIG_PWD" && git rev-parse --show-toplevel 2>/dev/null || true); [ "$(cd "${PROJECT:-/nonexistent}" 2>/dev/null && pwd -P)" = "$ROOT_REAL" ] && PROJECT=""; } PROJECT_REAL=""; [ -n "$PROJECT" ] && PROJECT_REAL=$(cd "$PROJECT" 2>/dev/null && pwd -P) +[ -n "$PROJECT" ] && [ -z "$PROJECT_REAL" ] && { echo "gstack-capy-install: --project takes a directory path; '$PROJECT' is not a directory (pass the project checkout's path, not a repo slug)" >&2; exit 2; } VERDICT=$(gstack_install_verdict_path "$GSTACK_STATE_ROOT" "$ROOT_REAL" "$PROJECT_REAL") REC_BUN="" REC_VER="" REC_RULE="" REC_BUN_INSTALL="" REC_FOR="" if [ -f "$VERDICT" ]; then diff --git a/changelog.d/gst-743-install-project-path.md b/changelog.d/gst-743-install-project-path.md new file mode 100644 index 000000000..0301d6d36 --- /dev/null +++ b/changelog.d/gst-743-install-project-path.md @@ -0,0 +1 @@ +- `install.sh --project` (through `gstack-capy-install`) refuses a value that is not a directory, such as a repo slug, with a usage error that asks for the checkout's path. Before, a slug silently keyed the install verdict and launch file to no project, so a later pregate admission check read a stale verdict (GST-743).