.linx-env v1
This commit is contained in:
@@ -1,46 +1,77 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
SERVICE_NAME="gamecube-pad.service"
|
||||
SERVICE_PATH="$HOME/.config/systemd/user/gamecube-pad.service"
|
||||
PYTHON_SCRIPT="/home/$USER/.local/bin/gamecube-pad.py"
|
||||
PYTHON_SCRIPT="$HOME/.local/bin/gamecube-pad.py"
|
||||
AUTOSTART_DIR="$HOME/.config/autostart"
|
||||
AUTOSTART_FILE="$AUTOSTART_DIR/gamecube-pad.desktop"
|
||||
|
||||
install_service() {
|
||||
echo "[+] Installation des dépendances..."
|
||||
sudo apt install -y python3-evdev python3-uinput xdotool wmctrl
|
||||
SILENT=false
|
||||
if [[ "$1" == "silent" ]]; then
|
||||
SILENT=true
|
||||
fi
|
||||
|
||||
echo "[+] Copie du script Python..."
|
||||
mkdir -p "$(dirname "$PYTHON_SCRIPT")"
|
||||
cp gamecube-pad.py "$PYTHON_SCRIPT"
|
||||
chmod +x "$PYTHON_SCRIPT"
|
||||
|
||||
echo "[+] Copie du fichier systemd utilisateur..."
|
||||
mkdir -p "$HOME/.config/systemd/user"
|
||||
cp gamecube-pad.service "$SERVICE_PATH"
|
||||
|
||||
echo "[+] Activation du service..."
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user enable gamecube-pad.service
|
||||
systemctl --user restart gamecube-pad.service
|
||||
|
||||
echo "[✓] Installation terminée. Consultez les logs avec : journalctl --user -u gamecube-pad.service -f"
|
||||
log() {
|
||||
if [ "$SILENT" = false ]; then
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
uninstall_service() {
|
||||
echo "[+] Arrêt et suppression du service..."
|
||||
systemctl --user stop gamecube-pad.service || true
|
||||
systemctl --user disable gamecube-pad.service || true
|
||||
rm -f "$SERVICE_PATH"
|
||||
check_and_install_deps() {
|
||||
for pkg in evdev uinput; do
|
||||
if ! python3 -c "import $pkg" &>/dev/null; then
|
||||
log "[!] Dépendance manquante : $pkg. Installation avec pip..."
|
||||
python3 -m pip install --user "$pkg" &>/dev/null
|
||||
fi
|
||||
done
|
||||
|
||||
for cmd in xdotool wmctrl; do
|
||||
if ! command -v "$cmd" &>/dev/null; then
|
||||
log "[!] Commande manquante : $cmd. Merci de l’installer via votre gestionnaire de paquets."
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
install_script() {
|
||||
check_and_install_deps
|
||||
|
||||
log "[+] Copie du script Python..."
|
||||
mkdir -p "$(dirname "$PYTHON_SCRIPT")"
|
||||
cp "$HOME/.linux-env/gamecube-pad/gamecube-pad.py" "$PYTHON_SCRIPT"
|
||||
chmod +x "$PYTHON_SCRIPT"
|
||||
|
||||
log "[+] Création du fichier autostart..."
|
||||
mkdir -p "$AUTOSTART_DIR"
|
||||
cat > "$AUTOSTART_FILE" <<EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Exec=$PYTHON_SCRIPT
|
||||
Hidden=false
|
||||
NoDisplay=false
|
||||
X-GNOME-Autostart-enabled=true
|
||||
Name=GameCube Pad
|
||||
Comment=Lance le script GameCube Pad au démarrage
|
||||
EOF
|
||||
|
||||
log "[✓] Installation terminée. Le script se lancera automatiquement à l'ouverture de session."
|
||||
}
|
||||
|
||||
uninstall_script() {
|
||||
log "[+] Suppression du script Python et autostart..."
|
||||
rm -f "$PYTHON_SCRIPT"
|
||||
systemctl --user daemon-reload
|
||||
echo "[✓] Désinstallation terminée."
|
||||
rm -f "$AUTOSTART_FILE"
|
||||
log "[✓] Désinstallation terminée."
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
uninstall)
|
||||
uninstall_service
|
||||
uninstall_script
|
||||
;;
|
||||
silent)
|
||||
SILENT=true
|
||||
uninstall_script &>/dev/null
|
||||
install_script &>/dev/null
|
||||
;;
|
||||
*)
|
||||
install_service
|
||||
install_script
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user