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 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).
|
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
|
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
|
## 📖 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,
|
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,
|
publication d'une version, mise en production pas à pas, montée de version, retour arrière,
|
||||||
désinstallation, et contraintes permanentes.
|
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
|
# 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
|
# 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.
|
# 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)"
|
source_dir="$(cd "$racine_paquet/../mabibli" 2>/dev/null && pwd || true)"
|
||||||
base_url="https://git.akbar.nohost.me/mathieu/mabibli/releases/download"
|
base_url="$depot_code/releases/download"
|
||||||
url_releases="https://git.akbar.nohost.me/mathieu/mabibli/releases"
|
url_releases="$depot_code/releases"
|
||||||
output_dir="$racine_paquet/build/dist"
|
output_dir="$racine_paquet/build/dist"
|
||||||
|
|
||||||
version=""
|
version=""
|
||||||
@@ -68,6 +75,7 @@ Usage : publier.sh [options]
|
|||||||
de route ; ne publie rien et ne modifie aucun dépôt. Les contrôles
|
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.
|
restent les mêmes, mais avertissent au lieu de refuser.
|
||||||
--source-dir CHEMIN Dépôt du code C# (défaut : ../mabibli)
|
--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
|
--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)
|
--output-dir CHEMIN Où déposer l'archive (défaut : build/dist)
|
||||||
-h, --help Cette aide
|
-h, --help Cette aide
|
||||||
@@ -81,6 +89,7 @@ while [ $# -gt 0 ]; do
|
|||||||
--oui|-y) sans_confirmation=1; shift ;;
|
--oui|-y) sans_confirmation=1; shift ;;
|
||||||
--archive-seule) archive_seule=1; shift ;;
|
--archive-seule) archive_seule=1; shift ;;
|
||||||
--source-dir) source_dir="$2"; shift 2 ;;
|
--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 ;;
|
--base-url) base_url="$2"; shift 2 ;;
|
||||||
--output-dir) output_dir="$2"; shift 2 ;;
|
--output-dir) output_dir="$2"; shift 2 ;;
|
||||||
-h|--help) usage; exit 0 ;;
|
-h|--help) usage; exit 0 ;;
|
||||||
@@ -141,6 +150,15 @@ if [ ! -d "$source_dir/.git" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
if ! command -v dotnet >/dev/null; then
|
||||||
echoerr "Le SDK .NET est introuvable. Il n'est nécessaire QUE sur cette machine :"
|
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."
|
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 :
|
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
|
FIN
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=MaBibli — gestion de bibliothèque personnelle
|
Description=MaBibli — gestion de bibliothèque personnelle
|
||||||
Documentation=https://git.akbar.nohost.me/mathieu/mabibli
|
Documentation=https://forge.example.org/mabibli
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[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 —
|
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]
|
[upstream]
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
code = "https://git.akbar.nohost.me/mathieu/mabibli"
|
code = "https://forge.example.org/mabibli"
|
||||||
|
|
||||||
[integration]
|
[integration]
|
||||||
yunohost = ">= 12.1.38"
|
yunohost = ">= 12.1.38"
|
||||||
@@ -98,7 +98,7 @@ ram.runtime = "256M"
|
|||||||
# self-contained (CLAUDE.md, « Ne jamais compiler sur le serveur »).
|
# self-contained (CLAUDE.md, « Ne jamais compiler sur le serveur »).
|
||||||
#
|
#
|
||||||
# Ces deux valeurs sont réécrites par `build/publier.sh`.
|
# 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"
|
amd64.sha256 = "15fb2ee67fb8f3a77a4c4734229e74d2605231713e100da38972d4dcf29e225d"
|
||||||
|
|
||||||
# L'archive dépose ses fichiers à la racine, sans dossier intermédiaire.
|
# L'archive dépose ses fichiers à la racine, sans dossier intermédiaire.
|
||||||
|
|||||||
Reference in New Issue
Block a user