35 lines
785 B
Plaintext
35 lines
785 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
POETRY='exit 99'
|
||
|
|
||
|
if type -P poetry >/dev/null; then
|
||
|
POETRY='poetry'
|
||
|
|
||
|
else
|
||
|
if ! type -P pip3 >/dev/null; then
|
||
|
echo "Neither pip3 nor poetry is available on this host: $(hostname)"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if ! test -d '.poetry_pypath/poetry'; then
|
||
|
# NOTE: .poetry_pypath should be ignored during remote-exec [pull]
|
||
|
echo "Poetry not found, downloading it to .poetry_pypath/ ..."
|
||
|
pip3 install -t '.poetry_pypath' poetry || exit $?
|
||
|
fi
|
||
|
|
||
|
export PYTHONPATH=".poetry_pypath:$PYTHONPATH"
|
||
|
POETRY='python3 -m poetry'
|
||
|
fi
|
||
|
|
||
|
|
||
|
if ! test -f "poetry.toml" ; then
|
||
|
$POETRY config --local virtualenvs.in-project true
|
||
|
fi
|
||
|
|
||
|
if ! test -d ".venv" ; then
|
||
|
$POETRY install || exit $?
|
||
|
fi
|
||
|
|
||
|
alias poetry="$POETRY"
|
||
|
exec $POETRY shell
|