From 622e386eac25ec5a7042a85e15c33040ebb916c7 Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 10 Oct 2025 17:26:39 +0200 Subject: [PATCH] optimisation, correction de stucture, etc --- .launcher.sh.un~ | Bin 108910 -> 6678 bytes launcher.sh | 320 +++++++++++++++++++++++------------------------ 2 files changed, 154 insertions(+), 166 deletions(-) mode change 100755 => 100644 .launcher.sh.un~ mode change 100755 => 100644 launcher.sh diff --git a/.launcher.sh.un~ b/.launcher.sh.un~ old mode 100755 new mode 100644 index 8c43e95d79e80f6f62a64a8e1f0f3338e2bc0ab0..352442523373fd9248909136c046bc7c3fea5a8a GIT binary patch literal 6678 zcmeI1J!lj`6vyY1XiSV&3YLRL;@61HVbu5$NFyY~#^85ub2rDX?Cl-9d#Bi?v(e64 z8$m5BM6j?CQrg&9Y9}FuU}IyW@4q{9yj#zpm<=iR!DMD^_n1`5)qYD_ zo37Wrs;gyH%UIuyHNEFh+C!;CX*VSpa+`#^c5r$Kt%G9m16s)j(k%IlCZxoElF^I3 z)@|*r-qfe9Foq48u)8+?Il)m9-}hyDOeR@gPB5X&K>*ne`+kBc>yqrVeR(tUtuTfS znJ=m4c!Ei!n66W=H%TZ5C8-LrVm$C$BYl!hAsDba6 z=>v``$)0McUKslL#1Nj1;g@ig5|l0q`tU-YM)b>^{uTPzH39}iAa_El4(NAu7kz8}adXi%$q=>0qtdmkj8eAi{c}MA> z1F&7J6I9`a%^=VX9mG<{($|q}Ik6iVyui7g%>bw&`T{R=N`6JcJIV3dm~B=24>8*S z1;Al8V8EqSKoy;L;(e2)WEBITi`%6qhKpw8*x+Q&NRk zLPOnXcI*;5v+_JL2V0Fb)Hf$t?0F;F^WqZ9qoa?}ERc?|IRH0(qd?4jl4Fq&pXG?5 zt_njuA(aorDMhnOnsoxYMC`ezFf>7L7aK0f7Brbd@+}h0bL-JO)Q_h8Gfv>M_re%C z&{ilFTV8TP{zf>@bDU6;!^Ekia%xbgQ>&>OT`aV5XgXz6)g+95&nEutjZpzE6FMa{VK5i@k literal 108910 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 diff --git a/launcher.sh b/launcher.sh old mode 100755 new mode 100644 index b1e0b2d..f96fbf1 --- a/launcher.sh +++ b/launcher.sh @@ -4,7 +4,7 @@ # AVERTISSEMENT LÉGAL ET TECHNIQUE # Date : 2025-10-08 # Auteur : Lucas Morel -# Version : v1.1 (https://github.com/PixPix20/Minecraft-Installer) +# Version : v1.2 (https://github.com/PixPix20/Minecraft-Installer) # # 1) Objet : Ce script vise à automatiser le lancement et l'installation de PrismLauncher. # @@ -22,150 +22,140 @@ set -euo pipefail -VERSION="1.1" - - - -set_env(){ - - +VERSION="1.2" +# Variables globales env="prod" -#AFS -if [ "$env" = "dev" ]; then - afs="$HOME/test" - printf "ATTENTION: Vous etes en mode 'dev'. Les path ont changés !\n" -else - afs="$HOME/afs" - #i3="$afs/.confs/config/i3/config" +afs="$HOME/afs" +i3="$afs/.confs/config/i3" +i3_config="$i3/config" -fi +max_storage=2147483648 #2Go max sur l'afs +minecraft_storage=943718400 #900Mo pour Minecraft +margin_storage=419430400 #400Mo de marge -i3=$afs/.confs/config/i3 -i3_config=$i3/config -mkdir -p $afs $i3 -} -max_storage=2147483648 #2Go, le stockage max de l'afs, je deconseille fortement d'augmenter cette valeur ! -minecraft_storage=943718400 #900Mo, j'utilise cette valeur si vous voulez jouer avec un modpack qui est lourd -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 - -#LAUNCHER - -minecraft_path="$afs/minecraft" #dossier qui contient minecraft la conf du launcher etc +minecraft_path="$afs/minecraft" launcher_name="PrismLauncher" -launcher_config_path="$minecraft_path/config" #dossier qui contient les configurations du launcher -launcher_appimage="$minecraft_path/PrismLauncher-Linux-x86_64.AppImage" #Dossier sense contenir le .appimage du launcher -instances_path="$minecraft_path/Instances" #dossier qui contient les instances minecraft -mods_path="$minecraft_path/mods" #Dossier qui contient les mods minecraft -java_path="$minecraft_path/java" #Dossier qui contient java(prism l'installe) +launcher_config_path="$minecraft_path/config" +launcher_appimage="$minecraft_path/PrismLauncher-Linux-x86_64.AppImage" +instances_path="$minecraft_path/Instances" +mods_path="$minecraft_path/mods" +java_path="$minecraft_path/java" downloads_path="$HOME/Downloads" launcher_local_files_path="$HOME/.local/share/PrismLauncher" -bin_path="$minecraft_path/bin" #dossier où se trouve l'executable du launcher +bin_path="$minecraft_path/bin" -#URL -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 +launcher_url="https://github.com/PrismLauncher/PrismLauncher/releases/download/9.4/PrismLauncher-Linux-x86_64.AppImage" +config_url="https://raw.githubusercontent.com/PixPix20/Minecraft-Installer/refs/heads/main/prismlauncher.cfg" -show_version(){ - printf "Version ${VERSION}\n" +# Fonctions + +set_env() { + if [ "${env:-prod}" = "dev" ]; then + afs="$HOME/test" + printf "ATTENTION: Vous êtes en mode 'dev'. Les chemins ont changé !\n" + else + afs="$HOME/afs" + fi + i3="$afs/.confs/config/i3" + i3_config="$i3/config" + mkdir -p "$afs" "$i3" } -show_env(){ - printf "Environement : ${env}\n" - printf "--PATHS :\n" - printf "AFS : ${afs}\n" - printf "i3 : ${i3_config}\n" - printf "Configuration du launcher : ${launcher_config_path}\n" - printf "Dossier de l'appimage : ${launcher_appimage}\n" - printf "Instances : ${instances_path}\n" - printf "Mods : ${mods_path}\n" - printf "Java : ${java_path}\n" - printf "Téléchargements : ${downloads_path}\n" - printf "Fichiers locaux du launcher : ${launcher_local_files_path}\n" - printf "Script : ${bin_path}\n" + +show_version() { + printf "Version %s\n" "$VERSION" } -help_msg(){ - cat < /dev/null; then - printf "${cmd} n'est pas installée ! \n" - err=true +check_commands() { + local err=0 + for cmd in wget curl sed grep nix-shell bc; do + if ! command -v "$cmd" &>/dev/null; then + printf "%s n'est pas installé !\n" "$cmd" + err=1 fi - done - if err=true; then + done + return $err +} + +check_storage() { + local used_storage total_storage + used_storage=$(du -sb "$afs" 2>/dev/null | awk '{print $1}') + total_storage=$((used_storage + minecraft_storage + margin_storage)) + if ((max_storage < total_storage)); then + printf "Erreur, pas assez de place pour l'installation ! %d octets requis.\n" "$total_storage" return 1 - else return 0 fi + return 0 } -check_storage(){ - #verification si l'AFS peut installer minecraft en plus de garder un marge pour les autre fichiers - local used_storage total_storage - used_storage=$(du -sb "$afs"|awk '{print $1}') - total_storage=$((used_storage + minecraft_storage + margin_storage)) #On additionne le stockage déja utilisé, la taille (~) de MC puis on ajoute une marge de secu. - if ((max_storage < $total_storage)); then - printf "Erreur, pas assez de place pour l'installation ! ${total_storage}Mo requis." - return 1 - else - return 0 +check_path() { + mkdir -p "$minecraft_path" "$launcher_config_path" "$instances_path" "$mods_path" "$java_path" "$bin_path" +} + +check_config() { + local config="$launcher_config_path/prismlauncher.cfg" + if [ ! -f "$config" ]; then + wget -q -P "$launcher_config_path/" "$config_url" + sed -i \ + -e "s|DownloadsDir=.*|DownloadsDir=$downloads_path|" \ + -e "s|InstanceDir=.*|InstanceDir=$instances_path|" \ + -e "s|CentralModsDir=.*|CentralModsDir=$mods_path|" \ + -e "s|JavaDir=.*|JavaDir=$java_path|" \ + "$config" fi } -check_path(){ - #Verfication de l'arbo du dossier minecraft - mkdir -p $minecraft_path $launcher_config_path $instances_path $mods_path $java_path $bin_path -} - -check_config(){ - #telechargement et modification de la config - local config="$launcher_config_path/prismlauncher.cfg" - if [ ! -f "$config" ]; then - wget -q -P "$launcher_config_path/" $config_url - sed -i \ - -e "s|DownloadsDir=|DownloadsDir=$downloads_path|" \ - -e "s|InstanceDir=|InstanceDir=$instances_path|" \ - -e "s|CentralModsDir=|CentralModsDir=$mods_path|" \ - -e "s|JavaDir=|JavaDir=$java_path|" \ - "$config" - fi -} - add_to_dmenu() { - # Ajoute le bin dans le PATH via dmenu_run sed -i "s|bindsym \$mod+d exec --no-startup-id dmenu_run|bindsym \$mod+d exec --no-startup-id PATH=$bin_path:\$PATH dmenu_run|" "$i3_config" - echo "export PATH=$bin_path:\$PATH" >> "$HOME/.bashrc" - echo "bindsym \$mod+m exec --no-startup-id minecraft-launcher -l" >> "$i3_config" - source "$HOME/.bashrc" + if ! grep -q "PATH=$bin_path" "$HOME/.bashrc"; then + echo "export PATH=$bin_path:\$PATH" >> "$HOME/.bashrc" + fi + if ! grep -q "minecraft-launcher" "$i3_config"; then + echo "bindsym \$mod+m exec --no-startup-id minecraft-launcher -l" >> "$i3_config" + fi cp "$0" "$bin_path/minecraft-launcher" - chmod +x "$bin_path/minecraft-launcher" + chmod +x "$bin_path/minecraft-launcher" } remove_all() { - #Supprime PrismLauncher et les dossiers de minecraft rm -rf "$minecraft_path" sed -i "s|PATH=$bin_path:\$PATH||g" "$HOME/.bashrc" } update_script() { - #echo "Mise à jour du script launcher.sh..." - script_url="https://raw.githubusercontent.com/PixPix20/Minecraft-Installer/main/launcher.sh" + local 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" @@ -178,29 +168,23 @@ update_script() { } 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 | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') - echo "$version" + local remote_url="https://api.github.com/repos/PixPix20/Minecraft-Installer/releases/latest" + curl -s "$remote_url" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' } check_script_update() { - #Met à jour le script vers la nouvelle version - local_version="$VERSION" + local local_version="$VERSION" + local remote_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 + if [ "$(printf '%s\n' "$remote_version" "$local_version" | sort -V | head -n1)" != "$remote_version" ]; then echo "Une nouvelle version du script est disponible." - echo "Voulez-vous la mettre à jour ? [o/N]" - read -r answer + read -r -p "Voulez-vous la mettre à jour ? [o/N] " answer if [[ "$answer" =~ ^[Oo]$ ]]; then update_script else @@ -211,49 +195,58 @@ check_script_update() { fi } -check_account(){ - #enregistrement du compte une fois connecte - while [ ! -f "$launcher_local_files_path/accounts.json" ]; do - sleep 2 - done - printf "Compte détécté, sauvegarde" - cp $launcher_local_files_path/accounts.json $launcher_config_path +check_account() { + while [ ! -f "$launcher_local_files_path/accounts.json" ]; do + sleep 2 + done + printf "Compte détecté, sauvegarde\n" + cp "$launcher_local_files_path/accounts.json" "$launcher_config_path" } -check_launcher(){ - #telechargement du launcher si inexistant - if [ ! -f "$launcher_appimage" ]; then - 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" - chmod +x "$launcher_appimage" - fi -} -cop_files(){ - #deplacement des fichers de config et du compte dans le .local du launcher - mkdir -p $launcher_local_files_path - cp $launcher_config_path/* $launcher_local_files_path +check_launcher() { + if [ ! -f "$launcher_appimage" ]; then + mkdir -p "$(dirname "$launcher_appimage")" + wget -q -O "$launcher_appimage" "$launcher_url" + chmod +x "$launcher_appimage" + fi } -start_launcher(){ - nix-shell -p appimage-run --run "appimage-run $launcher_appimage" +cop_files() { + mkdir -p "$launcher_local_files_path" + cp "$launcher_config_path"/* "$launcher_local_files_path" +} + +start_launcher() { + nix-shell -p appimage-run --run "appimage-run $launcher_appimage" } main() { + set_env if [ $# -eq 0 ]; then + check_commands || exit 1 check_path - check_config - check_launcher - cop_files - check_account & start_launcher - exit 0 + check_config + check_launcher + cop_files + check_account & start_launcher + exit 0 fi - case "$1" in - -i|--install) - if [ "$env" = "prod" ] && ! check_commands; then + case "${1:-}" in + -e|--env) + if [[ -n "${2:-}" ]]; then + env="$2" + else + echo "Usage: $0 --env [dev|prod]" exit 1 fi + set_env + ;; + -se|--show-env) + show_env + ;; + -i|--install) + check_commands || exit 1 check_storage || exit 1 check_path check_config @@ -261,27 +254,21 @@ main() { add_to_dmenu echo "Installation terminée." ;; - --env) - env=$2 - ;; - -se|--senv) - show_env - ;; -u|--update) - check_commands + check_commands || exit 1 check_script_update ;; -r|--remove) remove_all ;; - -l|--launch) - check_commands - check_path - check_config - check_launcher - cop_files - check_account & start_launcher - ;; + -l|--launch) + check_commands || exit 1 + check_path + check_config + check_launcher + cop_files + check_account & start_launcher + ;; -ad|--add-dmenu) add_to_dmenu ;; @@ -300,3 +287,4 @@ main() { } main "$@" +