Add initial presets (#1)

Signed-off-by: Chris Kim <oats87g@gmail.com>
This commit is contained in:
Chris Kim
2025-03-31 19:47:05 -07:00
committed by GitHub
parent e0a9610d02
commit fd9f215f9d
18 changed files with 1899 additions and 0 deletions

45
indexer/indexer.js Normal file
View File

@@ -0,0 +1,45 @@
'use strict';
const fs = require("fs");
const path = require("path");
const PresetsFolder = require('./PresetsFolder');
const settings = require('./Settings');
const IndexContent = require('./IndexContent');
const crypto = require('crypto');
const errors = [];
process.exitCode = 100;
let writeIndexFile = true;
if (process.argv.length === 3) {
if (process.argv[2] === "nosave") {
writeIndexFile = false;
}
}
let presetFilesArray = [];
let presetsFolder = new PresetsFolder(settings.presetsDir, settings, presetFilesArray, errors);
PresetsFolder.checkForIncludeLoops(presetFilesArray, errors);
//console.log(getUniqueValues(presetFilesArray, "firmwareVersion"));
if (0 === errors.length) {
console.log("OK");
if (writeIndexFile) {
const indexContent = new IndexContent(presetFilesArray, settings);
const jsonIndexContent = JSON.stringify(indexContent, null, 2);
fs.writeFileSync("index.json", jsonIndexContent);
console.log("index.json created");
const sum = crypto.createHash('sha256');
sum.update(jsonIndexContent);
const indexHash = sum.digest('hex');
fs.writeFileSync("index_hash.txt", indexHash);
console.log("index_hash.txt created");
}
process.exitCode = 0;
} else {
console.log("Failed with errors");
}