nutshell-cache-verification/scripts/check_env.sh

43 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
PYTHON_BIN="${PYTHON:-python3}"
PICKER_BIN="${PICKER:-picker}"
VERILATOR_BIN="${VERILATOR:-verilator}"
SWIG_BIN="${SWIG:-swig}"
export PATH="$HOME/.local/bin:$PATH"
export PYTHONPATH="$PWD/src:$PWD/Cache:$HOME/.local/share/picker/python:${PYTHONPATH:-}"
printf 'Python: '
"$PYTHON_BIN" --version
printf 'Python executable: '
"$PYTHON_BIN" -c 'import sys; print(sys.executable)'
printf 'Picker: '
if command -v "$PICKER_BIN" >/dev/null; then "$PICKER_BIN" --version | tail -1; else echo 'MISSING'; fi
printf 'Verilator: '
if command -v "$VERILATOR_BIN" >/dev/null; then "$VERILATOR_BIN" --version; else echo 'MISSING'; fi
printf 'SWIG: '
if command -v "$SWIG_BIN" >/dev/null; then "$SWIG_BIN" -version | awk '/SWIG Version/{print $3}'; else echo 'MISSING'; fi
"$PYTHON_BIN" - <<'PY'
import sys
missing = []
required = ['toffee', 'toffee_test', 'pytest']
for m in required:
try:
mod = __import__(m)
print(f'{m}: OK {getattr(mod, "__version__", "")}')
except Exception as e:
print(f'{m}: MISSING/ERROR {e}')
missing.append(m)
try:
import xspcomm
print('xspcomm: OK')
except Exception as e:
print(f'xspcomm: OPTIONAL-BEFORE-GEN_DUT MISSING/ERROR {e}')
if missing:
raise SystemExit(f'missing required Python modules: {", ".join(missing)}')
PY