df
Some checks failed
smoke-mm / Install & smoke test mm --help (push) Has been cancelled

This commit is contained in:
nose
2025-12-24 02:22:18 -08:00
parent 24dd18de7e
commit fcaa46b9ed

View File

@@ -1,6 +1,20 @@
#!/usr/bin/env bash
# Bootstrap script for POSIX (Linux/macOS) to create a Python venv and install the project.
# Usage: scripts/bootstrap.sh [--editable] [--venv <path>] [--python <python>] [--desktop] [--no-install]
# Ensure script is running under Bash. Some users invoke this script with `sh` (dash)
# which does not support the Bash features used below (e.g., [[ ]], arrays, read -p).
# If not running under Bash, re-exec using a discovered bash binary.
if [ -z "${BASH_VERSION:-}" ]; then
if command -v bash >/dev/null 2>&1; then
echo "This script requires Bash; re-execing as 'bash $0'..."
exec bash "$0" "$@"
else
echo "ERROR: This script requires Bash. Please run with 'bash $0' or install Bash." >&2
exit 2
fi
fi
set -euo pipefail
VENV_PATH=".venv"
@@ -60,6 +74,17 @@ fi
echo "Using Python: $PY"
# Operate from the repository root (parent of the scripts dir) so relative
# operations (like creating the venv and pip install) act on the project root
# regardless of where this script was invoked from.
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO="$(cd "$SCRIPT_DIR/.." && pwd)"
if ! cd "$REPO"; then
echo "ERROR: Failed to change to repo root: $REPO" >&2
exit 2
fi
echo "Operating from repo root: $REPO"
if [[ -d "$VENV_PATH" ]]; then
# Detect whether the existing venv has a working python executable
VENV_PY=""
@@ -119,10 +144,10 @@ if [[ "$NOINSTALL" != "true" ]]; then
if [[ "$EDITABLE" == "true" ]]; then
echo "Installing project in editable mode..."
"$VENV_PY" -m pip install -e .
"$VENV_PY" -m pip install -e "$REPO"
else
echo "Installing project..."
"$VENV_PY" -m pip install .
"$VENV_PY" -m pip install "$REPO"
fi
# Verify the installed CLI module can be imported. This helps catch packaging