6c4d7244c3
These modules were required by main.js / auto-update.js / github.js but never committed, so packaged builds lacked them and crashed at startup. Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Build patch-manifest.json for a release (same names as files[].source in launcher.json).
|
|
*
|
|
* Usage (from a folder containing the patch binaries):
|
|
* node generate-patch-manifest.js v0.9.0-client patch-Z.MPQ Wow-patched.exe
|
|
*
|
|
* Prints JSON to stdout — redirect to file:
|
|
* node generate-patch-manifest.js v0.9.0-client patch-Z.MPQ Wow-patched.exe > patch-manifest.json
|
|
*/
|
|
'use strict';
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const crypto = require('crypto');
|
|
|
|
const version = process.argv[2];
|
|
const names = process.argv.slice(3);
|
|
if (!version || names.length === 0) {
|
|
console.error('Usage: generate-patch-manifest.js <version-label> <file1> [file2 ...]');
|
|
console.error(' Example: generate-patch-manifest.js v0.9.0-client patch-Z.MPQ Wow-patched.exe');
|
|
process.exit(1);
|
|
}
|
|
|
|
const out = { version, files: {} };
|
|
for (const f of names) {
|
|
const base = path.basename(f);
|
|
const buf = fs.readFileSync(f);
|
|
const sha256 = crypto.createHash('sha256').update(buf).digest('hex');
|
|
out.files[base] = { sha256 };
|
|
}
|
|
process.stdout.write(`${JSON.stringify(out, null, 2)}\n`);
|