mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-20 06:55:08 -04:00
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
![]() |
/**
|
||
|
* This script automatically generates src/core/operations/index.mjs, containing
|
||
|
* imports for all operations in src/core/operations.
|
||
|
*
|
||
|
* @author n1474335 [n1474335@gmail.com]
|
||
|
* @copyright Crown Copyright 2018
|
||
|
* @license Apache-2.0
|
||
|
*/
|
||
|
|
||
|
/*eslint no-console: ["off"] */
|
||
|
|
||
|
import path from "path";
|
||
|
import fs from "fs";
|
||
|
import process from "process";
|
||
|
|
||
|
const dir = path.join(process.cwd() + "/src/core/config/");
|
||
|
if (!fs.existsSync(dir)) {
|
||
|
console.log("\nCWD: " + process.cwd());
|
||
|
console.log("Error: generateOpsIndex.mjs should be run from the project root");
|
||
|
console.log("Example> node --experimental-modules src/core/config/scripts/generateOpsIndex.mjs");
|
||
|
process.exit(1);
|
||
|
}
|
||
|
|
||
|
// Find all operation files
|
||
|
const opObjs = [];
|
||
|
fs.readdirSync(path.join(dir, "../operations")).forEach(file => {
|
||
|
if (!file.endsWith(".mjs") || file === "index.mjs") return;
|
||
|
opObjs.push(file.split(".mjs")[0]);
|
||
|
});
|
||
|
|
||
|
// Construct index file
|
||
|
let code = `/**
|
||
|
* THIS FILE IS AUTOMATICALLY GENERATED BY src/core/config/scripts/generateOpsIndex.mjs
|
||
|
*
|
||
|
* @author n1474335 [n1474335@gmail.com]
|
||
|
* @copyright Crown Copyright ${new Date().getUTCFullYear()}
|
||
|
* @license Apache-2.0
|
||
|
*/
|
||
|
`;
|
||
|
|
||
|
opObjs.forEach(obj => {
|
||
|
code += `import ${obj} from "./${obj}";\n`;
|
||
|
});
|
||
|
|
||
|
code += `
|
||
|
export {
|
||
|
`;
|
||
|
|
||
|
opObjs.forEach(obj => {
|
||
|
code += ` ${obj},\n`;
|
||
|
});
|
||
|
|
||
|
code += "};\n";
|
||
|
|
||
|
// Write file
|
||
|
fs.writeFileSync(
|
||
|
path.join(dir, "../operations/index.mjs"),
|
||
|
code
|
||
|
);
|