#!/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} )