From dbcbdf4c5702a65439e838634b8076fd5cbff680 Mon Sep 17 00:00:00 2001 From: svemagie <869694+svemagie@users.noreply.github.com> Date: Tue, 31 Mar 2026 21:21:52 +0200 Subject: [PATCH] debug resvg cli --- lib/og.js | 45 +++++++++++---------------------------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/lib/og.js b/lib/og.js index bc3c165..15538fd 100644 --- a/lib/og.js +++ b/lib/og.js @@ -485,21 +485,17 @@ export async function generateOgImages(contentDir, cacheDir, siteName, batchSize // Render SVG to PNG using the system resvg CLI // Requires: pkg install resvg const outPath = join(ogDir, `${slug}.png`); - console.log(`[og] Generating: ${outPath}`); - const result = spawnSync('resvg', ["-w", String(WIDTH), "-b", COLORS.bg, "-o", outPath, "-"], { input: svg, encoding: null }); - if (result.error) { - console.error(`[og] resvg CLI error for ${outPath}:`, result.error); - throw result.error; - } - if (result.status !== 0) { - console.error(`[og] resvg CLI failed for ${outPath}:`, result.stderr && result.stderr.toString()); - throw new Error(result.stderr && result.stderr.toString()); - } - if (!result.stdout || result.stdout.length === 0) { - console.error(`[og] resvg CLI produced no output for ${outPath}`); - throw new Error('resvg CLI produced no output'); - } - console.log(`[og] Wrote: ${outPath}`); + console.log(`[og] Generating: ${outPath}`); + const result = spawnSync("resvg", ["-w", String(WIDTH), "-b", COLORS.bg, "-o", outPath, "-"], { input: svg, encoding: null }); + if (result.error) { + console.error(`[og] resvg CLI error for ${outPath}:`, result.error); + throw result.error; + } + if (result.status !== 0) { + console.error(`[og] resvg CLI failed for ${outPath}:`, result.stderr && result.stderr.toString()); + throw new Error(result.stderr && result.stderr.toString()); + } + console.log(`[og] Wrote: ${outPath}`); newManifest[slug] = { title: slug, hash }; generated++; @@ -507,25 +503,6 @@ export async function generateOgImages(contentDir, cacheDir, siteName, batchSize if (generated % SAVE_INTERVAL === 0) { writeFileSync(manifestPath, JSON.stringify(newManifest, null, 2)); } - try { - const result = spawnSync('resvg', ["-w", String(WIDTH), "-b", COLORS.bg, "-o", outPath, "-"], { input: svg, encoding: null }); - if (result.error) { - console.error(`[og] resvg CLI error for ${outPath}:`, result.error); - throw result.error; - } - if (result.status !== 0) { - console.error(`[og] resvg CLI failed for ${outPath}:`, result.stderr && result.stderr.toString()); - throw new Error(result.stderr && result.stderr.toString()); - } - if (!result.stdout || result.stdout.length === 0) { - console.error(`[og] resvg CLI produced no output for ${outPath}`); - throw new Error('resvg CLI produced no output'); - } - console.log(`[og] Wrote: ${outPath}`); - } catch (e) { - console.error(`[og] Exception for ${outPath}:`, e); - require('fs').writeFileSync(outPath.replace(/\.png$/, '.svg'), svg); - } // Force GC to reclaim Satori/Resvg WASM native memory. if (hasGC && generated % GC_INTERVAL === 0) {