Files
DeskClaw/mobile/scripts/sync-web.mjs
2026-04-21 16:15:22 +00:00

39 lines
1016 B
JavaScript

import { mkdir, readdir, rm, copyFile, stat } from 'node:fs/promises'
import { join, resolve } from 'node:path'
async function copyDir(srcDir, dstDir) {
await mkdir(dstDir, { recursive: true })
const entries = await readdir(srcDir, { withFileTypes: true })
for (const entry of entries) {
const src = join(srcDir, entry.name)
const dst = join(dstDir, entry.name)
if (entry.isDirectory()) {
await copyDir(src, dst)
continue
}
if (entry.isFile()) {
await copyFile(src, dst)
}
}
}
async function main() {
const repoRoot = resolve(process.cwd(), '..')
const fromDir = join(repoRoot, 'dist')
const toDir = resolve(process.cwd(), 'www')
const st = await stat(fromDir).catch(() => null)
if (!st || !st.isDirectory()) {
throw new Error(`Missing dist/ at ${fromDir}. Run: pnpm -C .. run build:vite`)
}
await rm(toDir, { recursive: true, force: true })
await copyDir(fromDir, toDir)
}
main().catch((err) => {
console.error(err)
process.exit(1)
})