Files
triliumnext-korean-patch/tools/verify-release.mjs
T

6 lines
784 B
JavaScript

import fs from 'node:fs';import path from 'node:path';import crypto from 'node:crypto';import {fileURLToPath} from 'node:url';
const root=path.resolve(path.dirname(fileURLToPath(import.meta.url)),'..'),m=JSON.parse(fs.readFileSync(root+'/release/manifest.json'));
for(const [n,expected] of Object.entries(m.files)){const data=fs.readFileSync(root+'/release/app/'+n);if(data.length!==expected.bytes||crypto.createHash('sha256').update(data).digest('hex')!==expected.sha256)throw Error('Release mismatch '+n);}
const actual=fs.readdirSync(root+'/release/app',{recursive:true}).filter(n=>fs.statSync(root+'/release/app/'+n).isFile());if(actual.length!==Object.keys(m.files).length)throw Error('Unexpected release files');
console.log('배포 파일 '+actual.length+'개 검증 완료');