feat: scripts
This commit is contained in:
41
scripts/digestjs.js
Normal file
41
scripts/digestjs.js
Normal 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();
|
||||
Reference in New Issue
Block a user