31 lines
1.6 KiB
Bash
Executable File
31 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Dev entry point for eco -- unlike /sf/bernina/bin/eco (which hardcodes an
|
|
# ipython -c call against a fixed startup script and ignores its own
|
|
# arguments), this delegates to eco_cli.py's real argparse entry point
|
|
# (`-s`, `--ui`, `--profile`, `-l`/`--no-lazy`) so all of them work, e.g.:
|
|
# eco-dev -s bernina -l --ui desktop
|
|
# eco-dev -s bernina -l --ui shell
|
|
#
|
|
# Always runs the checkout this script lives in (resolved via its own
|
|
# location, so the same script works from any checkout -- e.g. the
|
|
# gac-bernina checkout or a personal one -- rather than a hardcoded path),
|
|
# for testing against that specific working tree, not whatever is
|
|
# "installed", even now that a real `eco` package is also installed in
|
|
# this same environment (bpy312). Running eco_cli.py by path only
|
|
# prioritises the checkout for *that* process; once it execs into
|
|
# ipython/jupyter/voila, sys.path doesn't carry over -- PYTHONPATH does,
|
|
# since env vars survive exec() while sys.path doesn't. So we set both,
|
|
# defensively: prepending PYTHONPATH makes every subsequent process
|
|
# (including nested ones eco_cli.py itself execs into) resolve `import
|
|
# eco` to this checkout first, ahead of the real install sitting in the
|
|
# same environment.
|
|
# Verified: `python -c "import eco; print(eco.__file__)"` resolves to the
|
|
# real install without this, and to this checkout with it.
|
|
#source bpy-default.sh
|
|
source bpy-env
|
|
|
|
ECO_CHECKOUT="$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
|
|
|
|
export PYTHONPATH="${ECO_CHECKOUT}${PYTHONPATH:+:$PYTHONPATH}"
|
|
exec python "${ECO_CHECKOUT}/eco_cli.py" "$@"
|