diff --git a/launcher.sh b/launcher.sh index 39b80c8..e53dc73 100644 --- a/launcher.sh +++ b/launcher.sh @@ -1,7 +1,28 @@ #!/usr/bin/env bash + +# ----------------------------------------------------------------------------- +# AVERTISSEMENT LÉGAL ET TECHNIQUE +# Date : 2025-10-08 +# Auteur : Lucas Morel +# Version : v1.1 (https://github.com/PixPix20/Minecraft-Installer) +# +# 1) Objet : Ce script vise à automatiser le lancement de PrismLauncher. +# +# 2) Garantie : Fourni "tel quel", sans garantie expresse ou implicite. +# +# 3) Responsabilité : L'utilisateur est responsable de l'exécution sur son AFS. +# Je décline toute responsabilité pour toute perte, corruption ou modification +# de données, que le script ait été modifié ou non. +# +# 4) Modifications : Toute modification du script implique que le modificateur +# assume l'entière responsabilité des conséquences. +# +# Contact : https://github.com/PixPix20 +# ----------------------------------------------------------------------------- + set -euo pipefail -VERSION=1.1 +VERSION="1.1" #On verifie qu'il y a assez de place pour installer minecraft en plus de garder un peu de place pour le reste #STOCKAGE @@ -10,8 +31,9 @@ minecraft_storage=943718400 #900Mo, j'utilise cette valeur si vous voulez jouer margin_storage=419430400 #400Mo, marge de securité pour que vous puissiez utiliser l'afs aprés l'installation du jeu, je deconseille de modifier cette valeur #AFS -afs="$HOME/afs" - +#afs="$HOME/afs/test" +afs="$HOME/test" +i3="$afs/.confs/config/i3/config" #LAUNCHER minecraft_path="$afs/minecraft" #dossier qui contient minecraft la conf du launcher etc @@ -31,22 +53,38 @@ bin_path="$minecraft_path/bin" #dossier où se trouve l'executable du launcher launcher_url="https://github.com/PrismLauncher/PrismLauncher/releases/download/9.4/PrismLauncher-Linux-x86_64.AppImage" #URL du github pour telecharger le launcher config_url="https://raw.githubusercontent.com/PixPix20/Minecraft-Installer/refs/heads/main/prismlauncher.cfg" #URL pour télécharger la config du launcher +help_msg(){ + cat <> "$HOME/.bashrc" + source "$HOME/.bashrc" + cp "$0" "$bin_path/minecraft-launcher" + #echo "Ajouté à dmenu !" +} + +remove_all() { + #echo "Suppression de Minecraft et du launcher..." + rm -rf "$minecraft_path" + sed -i "s|PATH=$bin_path:\$PATH||g" "$HOME/.bashrc" + #echo "Suppression terminée." +} + +update_script() { + #echo "Mise à jour du script launcher.sh..." + script_url="https://raw.githubusercontent.com/PixPix20/Minecraft-Installer/main/launcher.sh" + wget -q -O "$0.tmp" "$script_url" + if [ -s "$0.tmp" ]; then + mv "$0.tmp" "$0" + chmod +x "$0" + echo "Script mis à jour !" + else + echo "Erreur lors du téléchargement de la mise à jour." + rm -f "$0.tmp" + fi +} + +get_remote_version() { + # Récupère la version sur GitHub avec l'API + remote_url="https://api.github.com/repos/PixPix20/Minecraft-Installer/releases/latest" + version=$(curl -s $remote_url | jq -r '.tag_name') + echo "$version" +} + +check_script_update() { + local_version="$VERSION" + remote_version=$(get_remote_version) + + if [ -z "$remote_version" ]; then + echo "Impossible de récupérer la version distante." + return 1 + fi + + echo "Version locale : $local_version" + echo "Version distante : $remote_version" + + if [ 1 -eq "$(echo "${remote_version} > ${local_version}" | bc)" ]; then + echo "Une nouvelle version du script est disponible." + echo "Voulez-vous la mettre à jour ? [o/N]" + read -r answer + if [[ "$answer" =~ ^[Oo]$ ]]; then + update_script + else + echo "Mise à jour annulée." + fi + else + echo "Le script est à jour." + fi +} + check_account(){ #enregistrement du compte une fois connecte while [ ! -f "$prismlocal_path/accounts.json" ]; do @@ -70,7 +171,7 @@ check_account(){ check_launcher(){ #telechargement du launcher si inexistant if [ ! -f "$launcher_appimage" ]; then - echo "Téléchargement de $name..." + #echo "Téléchargement de $name..." mkdir -p "$(dirname "$launcher_appimage")" #curl -L -o "$launcher_appimage" "$launcher_url" #si wget ne marche pas, décommentez cette ligne et commentez l'autre wget -q -O "$launcher_appimage" "$launcher_url" @@ -100,20 +201,45 @@ setup(){ #Configure i3 pour l'ajouter le launcher dans dmenu_run mv $(pwd)/launcher.sh $bin_path } +main() { + if [ $# -eq 0 ]; then + help_msg + exit 0 + fi -start() { - check_path - check_config - check_launcher - start_launcher & check_account - + case "$1" in + -i|--install) + check_storage || exit 1 + check_path + check_config + check_launcher + add_to_dmenu + echo "Installation terminée." + ;; + -u|--update) + check_script_update + ;; + -r|--remove) + remove_all + ;; + -l|--launch) + start_launcher + check_path + check_config + check_launcher + ;; + --add-dmenu) + add_to_dmenu + ;; + -h|--help) + help_msg + ;; + *) + echo "Option inconnue: $1" + help_msg + exit 1 + ;; + esac } -if [ $# -eq 0 ]; then - start -elif [ $1 = -i ]; then - if [ check_storage = false ]; then - exit 0 - else start - fi -fi +main "$@"