From f6339400fac7af4a9c35b851940f598aa52909a4 Mon Sep 17 00:00:00 2001 From: Yvv Date: Sun, 29 Mar 2026 00:33:06 +0100 Subject: [PATCH] =?UTF-8?q?seed=20messagerie=20:=20message=20d'embarquemen?= =?UTF-8?q?t=20persist=C3=A9=20en=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - site/messages.yml : seed officielle avec le message premier embarquement - server/plugins/seed-messages.ts : init data/messages.yml au démarrage si absent Co-Authored-By: Claude Sonnet 4.6 --- server/plugins/seed-messages.ts | 18 ++++++++++++++++++ site/messages.yml | 26 +++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 server/plugins/seed-messages.ts diff --git a/server/plugins/seed-messages.ts b/server/plugins/seed-messages.ts new file mode 100644 index 0000000..8ca5355 --- /dev/null +++ b/server/plugins/seed-messages.ts @@ -0,0 +1,18 @@ +import { existsSync } from 'node:fs' +import { readFile, writeFile, mkdir } from 'node:fs/promises' +import { join } from 'node:path' + +// Seeds data/messages.yml from site/messages.yml on first boot (or after data loss). +// Only runs if data/messages.yml is absent — never overwrites existing runtime data. +export default defineNitroPlugin(async () => { + const dataFile = join(process.cwd(), 'data', 'messages.yml') + if (existsSync(dataFile)) return + + const seedFile = join(process.cwd(), 'site', 'messages.yml') + if (!existsSync(seedFile)) return + + await mkdir(join(process.cwd(), 'data'), { recursive: true }) + const seed = await readFile(seedFile, 'utf-8') + await writeFile(dataFile, seed, 'utf-8') + console.log('[seed-messages] data/messages.yml initialisé depuis site/messages.yml') +}) diff --git a/site/messages.yml b/site/messages.yml index 403127e..a44be14 100644 --- a/site/messages.yml +++ b/site/messages.yml @@ -1,7 +1,27 @@ messages: - id: 1 - author: test + author: Yvv email: "" - text: test + text: >- + Bienvenue dans le librodrome. Le message que vous écrivez est le tout premier pas pour prendre contact et + potentiellement embarquer dans la démarche. Encore un énorme boulot de préparation des outils et du fonctionnement + de la plateforme. + + + Ensuite le propos est d'identifier quelques bassins de vie pionniers qui se lancent dans des productions + collectives directement, ou bien qui souhaitent passer par un événement librodrome, pour cristaliser des envies et + passer à l'action à cette occasion. + + + N'hésitez pas à laisser un moyen de vous répondre dans votre message ; n'hésitez pas à nommer votre bassin de vie. + Nous prendrons contact avec vous si vous le souhaitez, nous ferons connaissance et verrons ensemble comment + factoriser nos efforts et nos mobilisations. + + + A bientôt. + + Merci pour la patience en attendant l'aboutissement d'un outil opérationnel. + type: suggestion published: true - createdAt: 2026-02-20T01:23:38.633Z + createdAt: 2026-03-19T04:09:22.881Z + reply: null