defl/scripts/setup.sh
2025-03-09 09:17:53 -04:00

42 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# TODO conv to py
set -o errexit -o nounset -o pipefail
eval "$@"
scriptDir="$(cd "$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" && pwd)"
cd "$scriptDir"
cd "$(git -C . rev-parse --show-toplevel)"
name="$(basename "$PWD")"
# uv sync --all-extras
mkdir -p $HOME/.venv/
if [[ ! -d $HOME/.venv/$name ]]; then
uv --python-preference only-managed --no-python-downloads venv $HOME/.venv/$name
fi
. $HOME/.venv/$name/bin/activate
# uv --python-preference only-managed --no-python-downloads add --link-mode symlink $PWD
uv --python-preference only-managed pip install -e $PWD
uv --python-preference only-managed pip install -r $PWD/pyproject.toml --all-extras
# uv --python-preference only-managed pip sync pyproject.toml
# --quiet
uv --python-preference only-managed pip install -e .[all]
fd 'pyproject.toml$' $HOME --max-depth 2 -E defl -E deflDev | while read x; do
base="$(dirname "$x")"
if [[ ! -e "$base/.dontAutoInstall" ]]; then
uv --python-preference only-managed pip install -e "$base"
(set -x && uv --python-preference only-managed pip install -r "$base/pyproject.toml")
fi
done
uv pip freeze | grep '^-e'
compareDev() (
uv pip list --python ~/.venv/defl > /tmp/defl
uv pip list --python ~/.venv/deflDev > /tmp/deflDev
diff --ignore-case --report-identical-files --expand-tabs --ignore-space-change --side-by-side --suppress-blank-empty --minimal --color=always /tmp/{defl,deflDev}
)