-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
86 lines (76 loc) · 2.5 KB
/
Copy pathsetup.sh
File metadata and controls
86 lines (76 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env bash
# MyTools — Script de instalacao (Linux/Mac)
# Executa: chmod +x setup.sh && ./setup.sh
set -euo pipefail
VERSION=$(grep '^version' pyproject.toml | head -1 | cut -d'"' -f2)
echo ""
echo "========================================"
echo " MyTools v${VERSION} — Instalador"
echo "========================================"
echo ""
# Verificar Python
echo "[1/4] Verificando Python..."
if command -v python3 &>/dev/null; then
PY="python3"
elif command -v python &>/dev/null; then
PY="python"
else
echo " ERRO: Python nao encontrado. Instale Python 3.14.2+."
exit 1
fi
echo " OK: $($PY --version)"
# Validate Python version >= 3.14.2
PY_VER=$($PY -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}')")
PY_MAJOR=$($PY -c "import sys; print(sys.version_info.major)")
PY_MINOR=$($PY -c "import sys; print(sys.version_info.minor)")
PY_PATCH=$($PY -c "import sys; print(sys.version_info.micro)")
if [ "$PY_MAJOR" -lt 3 ] || { [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -lt 14 ]; } || { [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -eq 14 ] && [ "$PY_PATCH" -lt 2 ]; }; then
echo " ERRO: Python $PY_VER encontrado. MyTools requer Python 3.14.2+."
exit 1
fi
# Verificar/Instalar uv
echo "[2/4] Verificando uv..."
if command -v uv &>/dev/null; then
echo " OK: $(uv --version)"
else
echo " uv nao encontrado. Instalando..."
$PY -m pip install uv
echo " uv instalado com sucesso."
fi
# Instalar dependencias
echo "[3/4] Instalando dependencias..."
uv sync
echo " OK: Dependencias instaladas."
# Adicionar ao PATH
echo "[4/4] Configurando PATH..."
VENV_BIN="$(pwd)/.venv/bin"
SHELL_RC=""
if [ -f "$HOME/.bashrc" ]; then
SHELL_RC="$HOME/.bashrc"
elif [ -f "$HOME/.zshrc" ]; then
SHELL_RC="$HOME/.zshrc"
fi
if [ -n "$SHELL_RC" ]; then
if ! grep -q "$VENV_BIN" "$SHELL_RC" 2>/dev/null; then
echo "" >> "$SHELL_RC"
echo "# MyTools" >> "$SHELL_RC"
echo "export PATH=\"$VENV_BIN:\$PATH\"" >> "$SHELL_RC"
echo " OK: PATH atualizado em $SHELL_RC"
else
echo " OK: PATH ja configurado."
fi
else
echo " AVISO: Shell RC nao encontrado. Adicione manualmente: export PATH=\"$VENV_BIN:\$PATH\""
fi
# Resultado
echo ""
echo "========================================"
echo " Instalacao concluida!"
echo "========================================"
echo ""
echo " Abra um NOVO terminal e execute:"
echo " mytools --version"
echo " mytools"
echo ""
echo " Ou use 'uv run mytools' neste terminal."
echo ""