Remplace l'URL du depot par un placeholder, centralise, et refuse de publier avec

Sortie du projet : l'URL du Gitea prive disparait au profit de
https://forge.example.org/mabibli — example.org est reserve a la documentation
par la RFC 2606, donc definitivement injoignable.

Une seule ligne commande tout le reste : depot_code, en tete de publier.sh, d'ou
derivent les URL de release, d'archive et le message de fin. --depot-code fait la
meme chose sans modifier le fichier.

⚠ publier.sh REFUSE desormais de publier tant que le placeholder est en place, et
il refuse avant de compiler, comme ses autres garde-fous. Sans cela on ecrirait
dans manifest.toml une amd64.url que personne ne peut telecharger, et l'echec
surviendrait bien plus loin — a l'installation, dans ynh_setup_source, sans
rapport apparent avec la cause.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-22 13:03:45 +02:00
co-authored by Claude Opus 5
parent ff0c2d653d
commit 5ebfd4a82b
5 changed files with 27 additions and 9 deletions
+21 -3
View File
@@ -42,9 +42,16 @@ manifeste="$racine_paquet/manifest.toml"
# répéter : l'aide en listait dix pour cinq réglages, et rien ne disait laquelle
# l'emportait sur l'autre. Ne pas les réintroduire pour une CI hypothétique — une CI
# passe des options aussi bien que des variables.
# ⚠️ LA SEULE LIGNE À CHANGER pour héberger ce projet ailleurs.
# Tout ce qui suit en dérive : URL de release, URL d'archive, message de fin.
# Le placeholder ci-dessous est volontairement injoignable (example.org est réservé à la
# documentation par la RFC 2606) : `publier.sh` REFUSE de publier tant qu'il est en place,
# plutôt que d'écrire une URL morte dans le manifeste — voir les contrôles préalables.
depot_code="https://forge.example.org/mabibli"
source_dir="$(cd "$racine_paquet/../mabibli" 2>/dev/null && pwd || true)"
base_url="https://git.akbar.nohost.me/mathieu/mabibli/releases/download"
url_releases="https://git.akbar.nohost.me/mathieu/mabibli/releases"
base_url="$depot_code/releases/download"
url_releases="$depot_code/releases"
output_dir="$racine_paquet/build/dist"
version=""
@@ -68,6 +75,7 @@ Usage : publier.sh [options]
de route ; ne publie rien et ne modifie aucun dépôt. Les contrôles
restent les mêmes, mais avertissent au lieu de refuser.
--source-dir CHEMIN Dépôt du code C# (défaut : ../mabibli)
--depot-code URL Dépôt public du code, d'où dérivent les URL de release
--base-url URL Racine des URL de release, sans le tag ni le fichier
--output-dir CHEMIN Où déposer l'archive (défaut : build/dist)
-h, --help Cette aide
@@ -81,6 +89,7 @@ while [ $# -gt 0 ]; do
--oui|-y) sans_confirmation=1; shift ;;
--archive-seule) archive_seule=1; shift ;;
--source-dir) source_dir="$2"; shift 2 ;;
--depot-code) depot_code="$2"; base_url="$2/releases/download"; url_releases="$2/releases"; shift 2 ;;
--base-url) base_url="$2"; shift 2 ;;
--output-dir) output_dir="$2"; shift 2 ;;
-h|--help) usage; exit 0 ;;
@@ -141,6 +150,15 @@ if [ ! -d "$source_dir/.git" ]; then
exit 1
fi
# ⚠️ Refuser AVANT de compiler, comme les autres garde-fous. Publier avec le placeholder
# écrirait dans manifest.toml une `amd64.url` que personne ne peut télécharger — et
# `ynh_setup_source` échouerait à l'installation, loin d'ici et sans rapport apparent.
if [ "$archive_seule" -eq 0 ] && [[ "$base_url" == *example.org* ]]; then
echoerr "Le dépôt public n'est pas configuré : $depot_code"
echoerr "Changez « depot_code » en tête de ce script, ou passez --depot-code URL."
exit 1
fi
if ! command -v dotnet >/dev/null; then
echoerr "Le SDK .NET est introuvable. Il n'est nécessaire QUE sur cette machine :"
echoerr "le serveur YunoHost reçoit un publish self-contained et n'a pas de SDK."
@@ -504,6 +522,6 @@ Ensuite, vérifier que le manifeste pointe sur un fichier réellement téléchar
Puis, sur le serveur :
sudo yunohost app upgrade mabibli -u https://git.akbar.nohost.me/mathieu/mabibli_ynh
sudo yunohost app upgrade mabibli -u ${depot_code}_ynh
FIN