57 lines
2.2 KiB
Python
57 lines
2.2 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
# © 2026 TechnoLibre (http://www.technolibre.ca)
|
||
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||
|
|
"""Installateurs amont des outils de développement.
|
||
|
|
|
||
|
|
Les mêmes outils se posent à DEUX endroits : sur l'hôte par le menu Shell,
|
||
|
|
et dans une VM par le déploiement QEMU. Une seule table les décrit, parce
|
||
|
|
que deux copies d'une URL dérivent dès que l'amont en change une, et que la
|
||
|
|
seconde copie est celle qu'on oublie.
|
||
|
|
|
||
|
|
Chacun est un installateur amont plutôt qu'un paquet : aucun n'est présent
|
||
|
|
dans les dépôts des quatre familles que supporte ERPLibre, et celui qui l'est
|
||
|
|
y traîne d'une version.
|
||
|
|
"""
|
||
|
|
|
||
|
|
# Proxy CLI qui réduit la consommation de tokens des assistants.
|
||
|
|
RTK_UPSTREAM = (
|
||
|
|
"curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/"
|
||
|
|
"refs/heads/master/install.sh | sh"
|
||
|
|
)
|
||
|
|
|
||
|
|
# L'installateur amont pose un binaire statique. Il sert de recours parce
|
||
|
|
# que le paquet manque d'une partie des dépôts des plateformes supportées.
|
||
|
|
STARSHIP_URL = "https://starship.rs/install/install.sh"
|
||
|
|
STARSHIP_UPSTREAM = f"curl -sS {STARSHIP_URL} | sh"
|
||
|
|
|
||
|
|
# Sans terminal — une pose par SSH dans une VM — l'installateur demande une
|
||
|
|
# confirmation que personne ne donnera. « -y » la donne d'avance.
|
||
|
|
STARSHIP_UPSTREAM_YES = f"curl -sS {STARSHIP_URL} | sh -s -- -y"
|
||
|
|
|
||
|
|
# Ce que chaque shell écrit pour lancer starship. La ligne va en FIN de
|
||
|
|
# fichier : starship compose le prompt et doit passer après tout ce qui y
|
||
|
|
# touche.
|
||
|
|
STARSHIP_LINE = {
|
||
|
|
"bash": 'eval "$(starship init bash)"',
|
||
|
|
"zsh": 'eval "$(starship init zsh)"',
|
||
|
|
"fish": "starship init fish | source",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Les assistants posés par un installateur amont : le nom du binaire mène
|
||
|
|
# à (commande, répertoire d'installation). Le répertoire sert à garantir
|
||
|
|
# le PATH — un binaire posé hors des chemins du shell reste introuvable.
|
||
|
|
AGENTS = {
|
||
|
|
"claude": (
|
||
|
|
"curl -fsSL https://claude.ai/install.sh | bash",
|
||
|
|
"~/.local/bin",
|
||
|
|
),
|
||
|
|
"opencode": (
|
||
|
|
"curl -fsSL https://opencode.ai/install | bash",
|
||
|
|
"~/.opencode/bin",
|
||
|
|
),
|
||
|
|
}
|
||
|
|
|
||
|
|
# L'agent posé quand rien n'est choisi. Le premier de la table ferait
|
||
|
|
# dépendre le défaut de l'ordre d'écriture d'un dictionnaire.
|
||
|
|
AGENT_DEFAUT = "claude"
|