da.nfin.ch/scripts/build-cv.ts

42 lines
882 B
TypeScript
Raw Normal View History

2026-05-19 22:33:32 +02:00
#!/usr/bin/env bun
import { mkdir } from "node:fs/promises"
import { dirname } from "node:path"
import { chromium } from "playwright"
const url = "file:///finch/da.nfin.ch/dist/cv.html"
const output = "dist/cv.pdf"
await mkdir(dirname(output), { recursive: true })
const executablePath =
process.env.CHROMIUM_PATH ??
Bun.which("thorium-browser") ??
Bun.which("chromium") ??
Bun.which("chromium-browser") ??
Bun.which("google-chrome") ??
undefined
const browser = await chromium.launch({
executablePath,
headless: true,
args: ["--no-sandbox", "--disable-gpu"],
})
try {
const page = await browser.newPage()
await page.goto(url, {
waitUntil: "networkidle",
timeout: 30_000,
})
await page.pdf({
path: output,
printBackground: true,
displayHeaderFooter: false,
preferCSSPageSize: true,
})
} finally {
await browser.close()
}