feat: scripts

This commit is contained in:
2025-04-05 16:57:26 +08:00
parent bd4fe63cdc
commit 3e996ffab3
62 changed files with 4905 additions and 0 deletions

41
scripts/digestjs.js Normal file
View File

@@ -0,0 +1,41 @@
#! /usr/bin/env runjs
var hashjs = require('component-hashjs.js');
var main = () => {
var args = $ARRAY($ARGS);
if (args.length < 1) {
println('No args...');
println();
println('digestjs.js <FILE>')
return;
}
args.forEach((f) => {
var fi = $$.file(f);
if (fi.isDirectory()) { xprintln('[WARN] Skip directory: ' + fi); return; }
if (!(fi.getName().endsWith('.js'))) { xprintln('[WARN] Skip non js: ' + fi); return; }
var bytes = $$.rFile(fi).Bytes();
var list = bytes.list();
var digestJSON = hashjs.__getDigestJSON(list);
var jsSHA256Hex = hashjs.__calcSHA256Hex(list);
if (digestJSON == null) {
xprintln('[OK] Write file: ' + fi + ', SHA256: ' + jsSHA256Hex);
digestJSON = { 'SHA256': jsSHA256Hex };
list.add(hashjs.COMMENT_HASH_TAG + JSON.stringify(digestJSON));
$$.rFile(fi).write($ARR(list).join('\n'));
} else {
if (digestJSON.SHA256 == jsSHA256Hex) {
xprintln('[INFO] SHA256 matches, Skip file SHA256 update: ' + fi);
} else {
xprintln('[OK] Update file: ' + fi + ', SHA256: ' + digestJSON.SHA256 + ' >> ' + jsSHA256Hex);
digestJSON = { 'SHA256': jsSHA256Hex };
list.add(hashjs.COMMENT_HASH_TAG + JSON.stringify(digestJSON));
$$.rFile(fi).write($ARR(list).join('\n'));
}
}
});
};
main();