39 lines
1016 B
JavaScript
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)
|
|
})
|
|
|