6 lines
784 B
JavaScript
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+'개 검증 완료');
|