amarorn / scripts /fix-editable-venv.sh
beAnalytic's picture
feat: sync main with feature/superbet-live-inplay
16c19b8 verified
Raw
History Blame Contribute Delete
1.62 kB
#!/usr/bin/env bash
# Corrige import dos CLIs (sync-gcp, daily-sync, etc.) no macOS + Python 3.13.
# Arquivos .pth em site-packages ganham UF_HIDDEN (iCloud/Documents) e o site.py os ignora.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
ACTIVATE="${ROOT}/.venv/bin/activate"
if [[ ! -f "$ACTIVATE" ]]; then
echo "venv não encontrado em ${ROOT}/.venv — rode: python -m venv .venv && pip install -e \".[dev]\""
exit 1
fi
MARKER="# api-noticia: PYTHONPATH para editable install (macOS)"
if grep -qF "$MARKER" "$ACTIVATE"; then
echo "venv já corrigido — rode: source .venv/bin/activate && sync-gcp --help"
exit 0
fi
TMP="$(mktemp)"
awk -v marker="$MARKER" -v root="$ROOT" '
BEGIN { done_deact = 0; done_act = 0 }
{
if (!done_deact && $0 ~ /^ unset VIRTUAL_ENV$/) {
print " if [ -n \"${_OLD_VIRTUAL_PYTHONPATH+x}\" ] ; then"
print " PYTHONPATH=\"${_OLD_VIRTUAL_PYTHONPATH:-}\""
print " if [ -z \"${_OLD_VIRTUAL_PYTHONPATH:-}\" ] ; then"
print " unset PYTHONPATH"
print " else"
print " export PYTHONPATH"
print " fi"
print " unset _OLD_VIRTUAL_PYTHONPATH"
print " fi"
print ""
done_deact = 1
}
print
}
END {
if (!done_deact) exit 1
print ""
print marker
print "_API_NOTICIA_ROOT=\"" root "\""
print "_OLD_VIRTUAL_PYTHONPATH=\"${PYTHONPATH:-}\""
print "PYTHONPATH=\"${_API_NOTICIA_ROOT}${PYTHONPATH:+:}${PYTHONPATH:-}\""
print "export PYTHONPATH"
}
' "$ACTIVATE" > "$TMP"
mv "$TMP" "$ACTIVATE"
echo "venv corrigido — rode: source .venv/bin/activate && sync-gcp --help"