attivazione venv automatica
This commit is contained in:
parent
8d7dc747a4
commit
10c680f77a
3 changed files with 102 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -17,3 +17,4 @@ wheels/
|
|||
.DS_Store
|
||||
|
||||
/.scripts/name
|
||||
/.scripts/c
|
||||
|
|
|
|||
98
.on_enter
Normal file
98
.on_enter
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
RED='\033[31m'
|
||||
GRE='\033[32m'
|
||||
YEL='\033[33m'
|
||||
BLU='\033[34m'
|
||||
RST='\033[0m'
|
||||
|
||||
NOGO=0
|
||||
|
||||
err() {
|
||||
echo -e "${RED}✖ ${1}${RST}"
|
||||
}
|
||||
|
||||
die() {
|
||||
err "${1}"
|
||||
NOGO=1
|
||||
}
|
||||
|
||||
info() {
|
||||
echo -e "${BLU}${1}${RST}"
|
||||
}
|
||||
|
||||
ok() {
|
||||
echo -e "${GRE}✔ ${1}${RST}"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YEL}▲ ${1}${RST}"
|
||||
}
|
||||
|
||||
# uv
|
||||
command -v uv >/dev/null 2>&1 || die "Comando 'uv' non trovato nel PATH. Installalo con '${YEL}curl -LsSf https://astral.sh/uv/install.sh | sh$RED'."
|
||||
|
||||
# ruff
|
||||
command -v ruff >/dev/null 2>&1 || die "Comando 'ruff' non trovato nel PATH. Installalo con '${YEL}uv tool install ruff$RED'."
|
||||
|
||||
# lefthook
|
||||
command -v lefthook >/dev/null 2>&1 || die "Comando 'lefthook' non trovato nel PATH. Installalo con '${YEL}uv tool install lefthook$RED' e poi esegui '${YEL}lefthook install$RED'."
|
||||
|
||||
ask_yn() {
|
||||
# $1 = domanda (con colori ok)
|
||||
local question="$1" answer
|
||||
while true; do
|
||||
printf '%b\n' "$question"
|
||||
printf '[y/n] --> '
|
||||
read -r answer
|
||||
# normalizza in minuscolo in modo portabile
|
||||
answer="$(printf %s "$answer" | tr '[:upper:]' '[:lower:]')"
|
||||
case "$answer" in
|
||||
y | yes) return 0 ;;
|
||||
n | no) return 1 ;;
|
||||
*) printf '%b\n' "${RED}RISPOSTA NON VALIDA${RST}" ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
C_FILE=".scripts/c"
|
||||
if [ ! -f "$C_FILE" ]; then
|
||||
printf '0' >"$C_FILE"
|
||||
fi
|
||||
COUNT="$(cat "$C_FILE")"
|
||||
|
||||
if [[ ! "$COUNT" =~ ^-?[0-9]+$ ]]; then
|
||||
printf '0' >"$C_FILE"
|
||||
COUNT="$(cat "$C_FILE")"
|
||||
fi
|
||||
|
||||
PROJECT_DIR="$PWD"
|
||||
EXPECTED_PYTHON="$PROJECT_DIR/.venv/bin/python"
|
||||
|
||||
ACTUAL_PYTHON="$(command -v python || true)"
|
||||
|
||||
if [ ! -x "$EXPECTED_PYTHON" ]; then
|
||||
err "❌ ERRORE: virtualenv non trovato nel progetto!"
|
||||
warn "🤖 Provo a crearlo in automatico"
|
||||
uv sync
|
||||
if [ ! -x "$EXPECTED_PYTHON" ]; then
|
||||
die "Ho fallito, segui la guida di installazione in README.md o chiedi a Jonas!"
|
||||
else
|
||||
echo -e "${GRE}✅ virtualenv creato con successo"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$NOGO" == 0 ]]; then
|
||||
if [ "$ACTUAL_PYTHON" != "$EXPECTED_PYTHON" ]; then
|
||||
if (("$COUNT" % 5 == 0)) && [[ "$USER" != "else" ]]; then
|
||||
if ask_yn "${YEL}Ti ricordi come attivare il virtual environment?${RST}"; then
|
||||
info "Bene allora questa volta lo dovrai attivare da solo"
|
||||
else
|
||||
info "Allora via a rileggerti la guida README.md"
|
||||
fi
|
||||
else
|
||||
info "Ti attivo il virtual environment così non ti dimentichi di farlo 🐺"
|
||||
. "$PROJECT_DIR/.venv/bin/activate"
|
||||
COUNT=$((COUNT + 1))
|
||||
printf "$COUNT" >"$C_FILE"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
@ -83,12 +83,12 @@ fi
|
|||
# isrepo
|
||||
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || die "Non sembra una repository Git."
|
||||
|
||||
# ruff
|
||||
command -v uv >/dev/null 2>&1 || die "Comando 'uv' non trovato nel PATH. Installalo con 'curl -LsSf https://astral.sh/uv/install.sh | sh'."
|
||||
# uv
|
||||
command -v uv >/dev/null 2>&1 || die "Comando 'uv' non trovato nel PATH. Installalo con '${YEL}curl -LsSf https://astral.sh/uv/install.sh | sh$RED'."
|
||||
ok "uv trovato."
|
||||
|
||||
# ruff
|
||||
command -v ruff >/dev/null 2>&1 || die "Comando 'ruff' non trovato nel PATH. Installalo con 'uv tool add ruff'."
|
||||
command -v ruff >/dev/null 2>&1 || die "Comando 'ruff' non trovato nel PATH. Installalo con '${YEL}uv tool install ruff$RED'."
|
||||
ok "ruff trovato."
|
||||
|
||||
# git name
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue