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:
@@ -1,6 +1,6 @@
|
||||
# Paquet YunoHost pour MaBibli
|
||||
|
||||
Paquet d'installation de [MaBibli](https://git.akbar.nohost.me/mathieu/mabibli), application de
|
||||
Paquet d'installation de [MaBibli](https://forge.example.org/mabibli), application de
|
||||
gestion de bibliothèque personnelle (catalogue, prêts, scan ISBN).
|
||||
|
||||
Ce dépôt **ne contient aucun code C#**. Il porte uniquement de quoi installer sur YunoHost une
|
||||
@@ -9,7 +9,7 @@ d'installation, et les scripts de publication.
|
||||
|
||||
## 📖 Toute la documentation est dans le dépôt du code
|
||||
|
||||
Elle a été regroupée dans **[le README de `mabibli`](https://git.akbar.nohost.me/mathieu/mabibli#readme)**,
|
||||
Elle a été regroupée dans **[le README de `mabibli`](https://forge.example.org/mabibli#readme)**,
|
||||
qui est le point d'entrée unique du projet : contenu et points de conception du paquet,
|
||||
publication d'une version, mise en production pas à pas, montée de version, retour arrière,
|
||||
désinstallation, et contraintes permanentes.
|
||||
|
||||
+21
-3
@@ -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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[Unit]
|
||||
Description=MaBibli — gestion de bibliothèque personnelle
|
||||
Documentation=https://git.akbar.nohost.me/mathieu/mabibli
|
||||
Documentation=https://forge.example.org/mabibli
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
|
||||
+1
-1
@@ -44,4 +44,4 @@ sqlite3 /home/yunohost.app/mabibli/mabibli.db ".backup '/quelque/part/mabibli.db
|
||||
---
|
||||
|
||||
Le détail — conception du paquet, publication, mise à jour pas à pas, retour arrière —
|
||||
est dans le [README du dépôt du code](https://git.akbar.nohost.me/mathieu/mabibli#readme).
|
||||
est dans le [README du dépôt du code](https://forge.example.org/mabibli#readme).
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ maintainers = ["mathieu"]
|
||||
|
||||
[upstream]
|
||||
license = "AGPL-3.0-or-later"
|
||||
code = "https://git.akbar.nohost.me/mathieu/mabibli"
|
||||
code = "https://forge.example.org/mabibli"
|
||||
|
||||
[integration]
|
||||
yunohost = ">= 12.1.38"
|
||||
@@ -98,7 +98,7 @@ ram.runtime = "256M"
|
||||
# self-contained (CLAUDE.md, « Ne jamais compiler sur le serveur »).
|
||||
#
|
||||
# Ces deux valeurs sont réécrites par `build/publier.sh`.
|
||||
amd64.url = "https://git.akbar.nohost.me/mathieu/mabibli/releases/download/v0.5.0/mabibli-0.5.0-linux-x64.tar.gz"
|
||||
amd64.url = "https://forge.example.org/mabibli/releases/download/v0.5.0/mabibli-0.5.0-linux-x64.tar.gz"
|
||||
amd64.sha256 = "15fb2ee67fb8f3a77a4c4734229e74d2605231713e100da38972d4dcf29e225d"
|
||||
|
||||
# L'archive dépose ses fichiers à la racine, sans dossier intermédiaire.
|
||||
|
||||
Reference in New Issue
Block a user