mirror of
https://github.com/coreybutler/nvm-windows.git
synced 2025-09-01 18:35:13 +00:00
add a local build tool
This commit is contained in:
48
build.js
Normal file
48
build.js
Normal file
@@ -0,0 +1,48 @@
|
||||
// This is a deno helper script to locally build the installer using Inno Setup
|
||||
// Yeah, I know it's not Node, but we need to compile this and Node SEAs on Win32 are a PITA.
|
||||
const content = await Deno.readTextFile('./nvm.iss')
|
||||
const data = JSON.parse(await Deno.readTextFile('./src/manifest.json'))
|
||||
const {version} = data
|
||||
const output = content.replaceAll('{{VERSION}}', version)
|
||||
await Deno.writeTextFile('./.tmp.iss', output)
|
||||
|
||||
console.log('Viewing /.tmp.iss')
|
||||
output.split("\n").forEach((line, num) => {
|
||||
let n = `${num+1}`
|
||||
while (n.length < 3) {
|
||||
n = ' ' + n
|
||||
}
|
||||
|
||||
console.log(`${n} | ${line}`)
|
||||
})
|
||||
|
||||
const command = await new Deno.Command('.\\assets\\buildtools\\iscc.exe', {
|
||||
args: ['.\\.tmp.iss'],
|
||||
stdout: 'piped',
|
||||
stderr: 'piped',
|
||||
})
|
||||
|
||||
const process = command.spawn();
|
||||
|
||||
// Stream stdout
|
||||
(async () => {
|
||||
const decoder = new TextDecoder();
|
||||
for await (const chunk of process.stdout) {
|
||||
console.log(decoder.decode(chunk));
|
||||
}
|
||||
})();
|
||||
|
||||
// Stream stderr
|
||||
(async () => {
|
||||
const decoder = new TextDecoder();
|
||||
for await (const chunk of process.stderr) {
|
||||
console.error(decoder.decode(chunk));
|
||||
}
|
||||
})();
|
||||
|
||||
// Wait for completion
|
||||
const status = await process.status;
|
||||
Deno.remove('.\\.tmp.iss');
|
||||
if (!status.success) {
|
||||
Deno.exit(status.code);
|
||||
}
|
Reference in New Issue
Block a user