-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
31 lines (23 loc) · 804 Bytes
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { mkdir, readdir, readFile, writeFile } from 'fs/promises';
async function main() {
const args = process.argv.slice(2);
if (args.length != 4) {
console.log('Usage: node build.js base_host ip4_host ip6_host root_dir');
return;
}
const [BASE_HOST, IP4_HOST, IP6_HOST, DIST_DIR] = args;
const vars = { BASE_HOST, IP4_HOST, IP6_HOST, DIST_DIR };
console.log(vars);
await mkdir('dist', { recursive: true });
await mkdir('conf', { recursive: true });
const files = await readdir('template');
for (const fn of files) {
let src = await readFile(`template/${fn}`, 'utf-8');
for (const [key, val] of Object.entries(vars)) {
src = src.replaceAll(key, val);
}
const out = fn.match(/\.conf$/) ? 'conf' : 'dist';
await writeFile(`${out}/${fn}`, src);
}
}
await main();