89 lines
2.0 KiB
Bash
Executable File
89 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SKILL_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
PYTHON_BIN="${PYTHON_BIN:-python3}"
|
|
|
|
if ! command -v "${PYTHON_BIN}" >/dev/null 2>&1; then
|
|
PYTHON_BIN="python"
|
|
fi
|
|
|
|
if ! command -v "${PYTHON_BIN}" >/dev/null 2>&1; then
|
|
echo "Error: python interpreter not found." >&2
|
|
exit 1
|
|
fi
|
|
|
|
PYTHON_BIN="$(command -v "${PYTHON_BIN}")"
|
|
export PYTHON_BIN
|
|
|
|
if ! "${PYTHON_BIN}" - <<'PY' >/dev/null 2>&1
|
|
import sys
|
|
raise SystemExit(0 if sys.prefix != sys.base_prefix else 1)
|
|
PY
|
|
then
|
|
echo "Error: target interpreter is not inside a virtual environment." >&2
|
|
echo "Hint: activate a venv first, or run with PYTHON_BIN=/path/to/venv/bin/python." >&2
|
|
exit 1
|
|
fi
|
|
|
|
export SIMPLECAD_SKILL_ROOT="${SKILL_ROOT}"
|
|
export SIMPLECAD_RUNTIME_PACKAGE="simplecadapi"
|
|
export SIMPLECAD_CASES_ROOT="${SKILL_ROOT}/cases"
|
|
export SIMPLECAD_CASES_MODULE="simplecad_self_evolve_cases"
|
|
|
|
PACKAGE_SPEC="simplecadapi==2.0.8"
|
|
JUPYTER_DEPS=("jupyterlab>=4.5.5" "ipykernel>=6.29.5")
|
|
INSTALL_JUPYTER=0
|
|
INSTALL_ARGS=()
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--with-jupyter)
|
|
INSTALL_JUPYTER=1
|
|
shift
|
|
;;
|
|
--)
|
|
shift
|
|
INSTALL_ARGS+=("$@")
|
|
break
|
|
;;
|
|
*)
|
|
INSTALL_ARGS+=("$1")
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if command -v uv >/dev/null 2>&1; then
|
|
INSTALL_CMD=(uv pip install --python "${PYTHON_BIN}")
|
|
else
|
|
INSTALL_CMD=("${PYTHON_BIN}" -m pip install)
|
|
fi
|
|
|
|
run_install() {
|
|
local targets=("$@")
|
|
if [[ ${#INSTALL_ARGS[@]} -gt 0 ]]; then
|
|
"${INSTALL_CMD[@]}" "${INSTALL_ARGS[@]}" "${targets[@]}"
|
|
else
|
|
"${INSTALL_CMD[@]}" "${targets[@]}"
|
|
fi
|
|
}
|
|
|
|
echo "Installing runtime package: ${PACKAGE_SPEC}"
|
|
run_install "${PACKAGE_SPEC}"
|
|
|
|
if [[ "${INSTALL_JUPYTER}" == "1" ]]; then
|
|
echo "Installing Jupyter dependencies..."
|
|
run_install "${JUPYTER_DEPS[@]}"
|
|
fi
|
|
|
|
"${PYTHON_BIN}" - <<'PY'
|
|
import simplecadapi as scad
|
|
|
|
print("simplecadapi import OK")
|
|
print(getattr(scad, "__description__", ""))
|
|
PY
|
|
|
|
echo "Runtime install completed for simplecadapi 2.0.8."
|