diff --git a/scripts/assistant.py b/scripts/assistant.py index bebe22d..36f55b6 100644 --- a/scripts/assistant.py +++ b/scripts/assistant.py @@ -126,6 +126,8 @@ def installer_quarto(): paquet = telecharger_quarto(f"linux-{arch}.deb") print(" Votre mot de passe peut être demandé (installation système).") subprocess.run(["sudo", "apt-get", "install", "-y", str(paquet)]) + elif SYSTEME == "Linux" and shutil.which("pacman"): + return installer_quarto_arch() else: return False except Exception as erreur: # réseau indisponible, fichier introuvable… @@ -134,6 +136,28 @@ def installer_quarto(): return True +def installer_quarto_arch(): + """Arch Linux et dérivées : dépôts officiels si le paquet y existe, sinon AUR via yay (ou paru).""" + for nom in ("quarto-cli", "quarto"): + if subprocess.run(["pacman", "-Si", nom], stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL).returncode == 0: + print(" Votre mot de passe peut être demandé (installation système).") + subprocess.run(["sudo", "pacman", "-S", "--needed", nom]) + return True + paquet_aur = "quarto-cli-bin" # binaire officiel empaqueté, à jour (quarto-cli compile depuis les sources) + for assistant_aur in ("yay", "paru"): + if shutil.which(assistant_aur): + print(f" Quarto n'est disponible que dans l'AUR : installation de « {paquet_aur} » avec {assistant_aur}.") + print(" Validez les questions posées ; votre mot de passe sera demandé à la fin.") + # Jamais avec sudo : yay et paru s'exécutent en utilisateur normal et appellent sudo eux-mêmes. + subprocess.run([assistant_aur, "-S", "--needed", paquet_aur]) + return True + print(" Sous Arch, Quarto n'est disponible que dans l'AUR (paquet « quarto-cli-bin »),") + print(" et aucun assistant AUR (yay ou paru) n'a été trouvé sur cet ordinateur.") + print(" Installez yay (https://github.com/Jguer/yay) puis relancez, ou installez le paquet à la main.") + return False + + def verifier_quarto(): titre("1/3 Quarto (outil de mise en page)") quarto = trouver_quarto()