37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import * as fs from 'node:fs/promises'
|
|
import { fileURLToPath } from 'node:url'
|
|
import path from 'path'
|
|
import { execSync } from 'child_process'
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
main().catch((error) => {
|
|
console.error(error)
|
|
process.exit(1)
|
|
})
|
|
|
|
async function main() {
|
|
// Get all directories in `templates` directory
|
|
const repoRoot = path.resolve(dirname, '..')
|
|
const templatesDir = path.resolve(repoRoot, 'templates')
|
|
|
|
const rawTemplateDirs = await fs.readdir(templatesDir, { withFileTypes: true })
|
|
const templateDirnames = rawTemplateDirs
|
|
.filter(
|
|
(dirent) =>
|
|
dirent.isDirectory() && (dirent.name.startsWith('with') || dirent.name == 'blank'),
|
|
)
|
|
.map((dirent) => dirent.name)
|
|
|
|
console.log(`Found generated templates: ${templateDirnames}`)
|
|
|
|
// Build each template
|
|
for (const template of templateDirnames) {
|
|
const cmd = `cd ${templatesDir}/${template} && pnpm install --ignore-workspace --no-frozen-lockfile && pnpm build`
|
|
console.log(`🔧 Building ${template}...`)
|
|
console.log(` cmd: ${cmd}\n\n`)
|
|
execSync(cmd, { stdio: 'inherit' })
|
|
}
|
|
}
|