diff --git a/oci/PACKAGE-CONTENTS.md b/oci/PACKAGE-CONTENTS.md index 9eb884e1..d7d6fc8e 100644 --- a/oci/PACKAGE-CONTENTS.md +++ b/oci/PACKAGE-CONTENTS.md @@ -2,7 +2,7 @@ Runtime distribution only: -- `proxmenux-oci.sh`: installer entry point. +- `proxmenux-oci.sh`: entry point, run from this directory. - `catalog/`: index, application templates, curated definitions and overlays. - `src/`: menu and deployment orchestrator. - `remote/`: native Proxmox OCI/LXC installation and lifecycle helpers. diff --git a/oci/proxmenux-oci.sh b/oci/proxmenux-oci.sh index 6666e923..efd13d63 100755 --- a/oci/proxmenux-oci.sh +++ b/oci/proxmenux-oci.sh @@ -6,6 +6,24 @@ VENV_DIR="$ROOT_DIR/.venv" REQUIREMENTS="$ROOT_DIR/requirements.txt" STAMP="$VENV_DIR/.requirements.sha256" +# The orchestrator lives beside this script, so it has to run from where it +# was installed. Piped from a URL there is no directory to read: $0 is "bash", +# ROOT_DIR becomes the working directory, and the first missing file reports a +# path nobody asked for. +if [ ! -r "$REQUIREMENTS" ] || [ ! -d "$ROOT_DIR/src/proxmenux_oci" ]; then + cat >&2 </dev/null 2>&1 || { echo "ERROR: Python 3 is required." >&2 exit 1