Repository navigation
Expand file tree
/
Copy pathbootstrap_linux.sh
More file actions
executable file
·107 lines (93 loc) · 3.58 KB
/
Copy pathbootstrap_linux.sh
File metadata and controls
executable file
·107 lines (93 loc) · 3.58 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/env bash
set -e
INSTALL_DIR="$HOME/.local/share/AlChess"
REPO_URL="https://github.com/AlainDelree/AlChess.git"
DESKTOP_FILE="$HOME/Desktop/AlChess.desktop"
echo "=== AlChess — Installation Linux ==="
# 1. Vérifier les prérequis
for cmd in git python3; do
if ! command -v $cmd &>/dev/null; then
echo "ERREUR : $cmd est requis. Installez-le avec : sudo apt install $cmd"
exit 1
fi
done
if ! python3 -c "import venv" &>/dev/null; then
echo "ERREUR : python3-venv est requis : sudo apt install python3-venv"
exit 1
fi
# 2. Cloner ou mettre à jour le repo
if [ -d "$INSTALL_DIR/.git" ]; then
echo "AlChess déjà installé — mise à jour..."
git -C "$INSTALL_DIR" fetch --tags origin
LATEST=$(git -C "$INSTALL_DIR" tag --sort=-version:refname | head -1)
git -C "$INSTALL_DIR" checkout "$LATEST"
else
echo "Clonage d'AlChess dans $INSTALL_DIR..."
mkdir -p "$INSTALL_DIR"
git -C "$INSTALL_DIR" init
git -C "$INSTALL_DIR" remote add origin "$REPO_URL"
git -C "$INSTALL_DIR" fetch --depth=1 --tags origin
LATEST=$(git -C "$INSTALL_DIR" tag --sort=-version:refname | head -1)
git -C "$INSTALL_DIR" checkout "$LATEST"
fi
echo "Version installée : $LATEST"
# 3. Créer le venv et installer les dépendances
if [ ! -f "$INSTALL_DIR/venv/bin/python" ]; then
echo "Création de l'environnement virtuel..."
python3 -m venv "$INSTALL_DIR/venv"
fi
echo "Installation des dépendances..."
"$INSTALL_DIR/venv/bin/pip" install --upgrade pip --quiet
"$INSTALL_DIR/venv/bin/pip" install -r "$INSTALL_DIR/requirements.txt" --quiet
# 4. espeak-ng (fallback TTS hors ligne pour Opening Explorer)
if ! command -v espeak-ng &>/dev/null; then
echo "Installation d'espeak-ng (synthèse vocale)..."
if sudo -n true 2>/dev/null; then
sudo apt-get install -y espeak-ng
else
echo "AVERTISSEMENT : droits sudo requis pour installer espeak-ng."
echo "Exécutez manuellement : sudo apt-get install espeak-ng"
fi
fi
# 4b. mpg123 (lecture MP3 des voix neuronales edge-tts)
if ! command -v mpg123 &>/dev/null; then
echo "Installation de mpg123 (lecture audio)..."
if sudo -n true 2>/dev/null; then
sudo apt-get install -y mpg123
else
echo "AVERTISSEMENT : droits sudo requis pour installer mpg123."
echo "Exécutez manuellement : sudo apt-get install mpg123"
fi
fi
# 5. Règles udev Chessnut (optionnel — demande sudo)
UDEV_RULE='SUBSYSTEM=="usb", ATTRS{idVendor}=="2d80", MODE="0666", GROUP="plugdev", TAG+="uaccess"'
UDEV_FILE="/etc/udev/rules.d/99-chessnut-alchess.rules"
echo "Configuration du périphérique USB Chessnut..."
if sudo -n true 2>/dev/null; then
echo "$UDEV_RULE" | sudo tee "$UDEV_FILE" > /dev/null
sudo udevadm control --reload-rules
sudo udevadm trigger
echo "Règles udev configurées."
else
echo "AVERTISSEMENT : droits sudo requis pour la règle udev."
echo "Exécutez manuellement :"
echo " echo '$UDEV_RULE' | sudo tee $UDEV_FILE"
echo " sudo udevadm control --reload-rules && sudo udevadm trigger"
fi
# 6. Créer le lanceur .desktop sur le bureau
mkdir -p "$HOME/Desktop"
cat > "$DESKTOP_FILE" << DESK
[Desktop Entry]
Name=AlChess
Comment=Entraînement aux échecs sur échiquier physique Chessnut
Exec=bash -c "cd $INSTALL_DIR && $INSTALL_DIR/venv/bin/python -m nicsoft.web"
Icon=$INSTALL_DIR/alchess.ico
Terminal=false
Type=Application
Categories=Game;
DESK
chmod +x "$DESKTOP_FILE"
echo ""
echo "=== Installation terminée ==="
echo "Lancez AlChess avec le raccourci sur le Bureau,"
echo "ou : cd $INSTALL_DIR && venv/bin/python -m nicsoft.web"