import fs from 'node:fs'; import path from 'node:path'; import { execSync } from 'node:child_process'; const rawSiteUrl = process.env.PUBLIC_SITE_URL || process.env.EXTERNAL_SITE_URL; if (!rawSiteUrl) { console.error( '[build-astro-external] Missing PUBLIC_SITE_URL (or EXTERNAL_SITE_URL). Refusing external build with fallback canonical.' ); process.exit(1); } const normalizeUrl = (value) => (value.endsWith('/') ? value : `${value}/`); process.env.PUBLIC_SITE_URL = normalizeUrl(rawSiteUrl); const siteUrl = process.env.PUBLIC_SITE_URL; const run = (command) => { execSync(command, { stdio: 'inherit', env: process.env }); }; console.log(`[build-astro-external] Using PUBLIC_SITE_URL=${process.env.PUBLIC_SITE_URL}`); run('npm run build'); const robotsContent = `User-agent: *\nAllow: /\n\nSitemap: ${siteUrl}sitemap.xml\n`; const sitemapContent = `\n\n \n ${siteUrl}\n weekly\n 1.0\n \n \n ${siteUrl}formation/\n monthly\n 0.9\n \n \n ${siteUrl}mentions-legales/\n yearly\n 0.3\n \n\n`; fs.writeFileSync(path.resolve(process.cwd(), 'dist', 'robots.txt'), robotsContent, 'utf8'); fs.writeFileSync(path.resolve(process.cwd(), 'dist', 'sitemap.xml'), sitemapContent, 'utf8'); console.log('[build-astro-external] Wrote dist/robots.txt and dist/sitemap.xml for external domain.'); console.log('[build-astro-external] External Astro build done.');