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
|
.DS_Store
|
||||||
|
|
||||||
/.scripts/name
|
/.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
|
# isrepo
|
||||||
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || die "Non sembra una repository Git."
|
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || die "Non sembra una repository Git."
|
||||||
|
|
||||||
# ruff
|
# uv
|
||||||
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'."
|
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."
|
ok "uv trovato."
|
||||||
|
|
||||||
# ruff
|
# 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."
|
ok "ruff trovato."
|
||||||
|
|
||||||
# git name
|
# git name
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue