1
0
rotorflight-presets/indexer/indexer.js
Chris Kim fd9f215f9d
Add initial presets (#1)
Signed-off-by: Chris Kim <oats87g@gmail.com>
2025-04-01 12:47:05 +10:00

46 lines
1.3 KiB
JavaScript

'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");
}