[FIX] script todo : starship, URL corrigée, curl qui refuse le HTML

L'URL amont de starship pointait sur un chemin qui n'existe pas : le serveur
rend 404 avec une page HTML de 34 ko, que « curl -sS » écrit tout de même sur
sa sortie en rendant 0. Cette page arrivait donc sur l'entrée de « sh », qui
s'arrêtait sur « Syntax error » à sa deuxième ligne — un diagnostic qui ne dit
ni l'URL fautive ni que rien n'a été posé. « -f » fait taire curl et rendre 22
sur toute réponse d'erreur ; les quatre autres installateurs amont du fichier
l'utilisaient déjà.

Vérifié : le « --help » de l'installateur est atteint, sans rien installer.

--- EN ---

The upstream starship URL pointed at a path that does not exist: the server
answers 404 with a 34 kB HTML page, which `curl -sS` writes to its output
anyway while exiting 0. That page reached the input of `sh`, which stopped on
`Syntax error` at its second line — a diagnosis naming neither the wrong URL
nor the fact that nothing was installed. `-f` makes curl write nothing and
return 22 on any error response; the four other upstream installers in the
file already used it.

Checked: the installer's `--help` is reached, with nothing installed.

Assisted-by: Claude Opus 5
This commit is contained in:
Mathieu Benoit 2026-09-04 00:38:29 -04:00
parent af38810da5
commit 6c1d985686

View file

@ -21,12 +21,20 @@ RTK_UPSTREAM = (
# 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"
STARSHIP_URL = "https://starship.rs/install.sh"
# « -f » n'est pas un ornement quand la sortie part dans un shell : sans lui,
# curl écrit le CORPS d'une réponse d'erreur et sort avec 0, si bien qu'une
# page HTML de 34 ko arrive sur l'entrée de « sh » et s'y interprète comme
# un script. Le diagnostic obtenu est alors « Syntax error » sur une ligne du
# HTML, qui ne dit ni que l'URL est fautive ni que rien n'a été installé.
# Avec « -f », curl n'écrit rien et rend 22. « -L » suit une redirection,
# qu'un projet amont pose sans prévenir.
STARSHIP_UPSTREAM = f"curl -fsSL {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"
STARSHIP_UPSTREAM_YES = f"curl -fsSL {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