#! /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 ') 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();