mirror of
https://github.com/eaglerforge/EaglerForgeInjector
synced 2025-06-05 18:41:58 -09:00
47 lines
2.2 KiB
JavaScript
47 lines
2.2 KiB
JavaScript
#!/usr/bin/env node
|
|
const { DOMParser } = require("@xmldom/xmldom");
|
|
const fs = require("fs/promises");
|
|
const EFI = require("./core/core");
|
|
|
|
async function main() {
|
|
const args = process.argv.slice(2);
|
|
|
|
if (args.includes("/help") || args.length === 0) {
|
|
console.log("***************************");
|
|
console.log("* EaglerForgeInjector CLI *");
|
|
console.log("***************************");
|
|
console.log("");
|
|
console.log("> npx efi /help #shows this help text");
|
|
console.log("> npx efi my_unminified_file.html #does nothing");
|
|
console.log("> npx efi my_unminified_file.html /eaglerforge #injects eaglerforge");
|
|
console.log("> npx efi my_unminified_file.html /minify #minifies file");
|
|
console.log("> npx efi my_unminified_file.html /minify /minify_extras #minifies file with extra optimisations");
|
|
console.log("> npx efi my_unminified_file.html /eaglerforge /minify #minifies file and injects eaglerforge");
|
|
console.log("> npx efi my_unminified_file.html /server_extras #inject server hosting stuff");
|
|
console.log("> npx efi my_unminified_file.html output.html /eaglerforge /minify #minifies file and injects eaglerforge, write to file named output.html");
|
|
console.log("> npx efi my_unminified_file.html /verbose #much logging");
|
|
console.log("By default, output is written to processed.html");
|
|
return;
|
|
}
|
|
const inputFile = args[0];
|
|
if (!inputFile) {
|
|
return console.error("No file provided!");
|
|
}
|
|
EFI.conf.doMinify = args.includes("/minify");
|
|
EFI.conf.doEaglerforge = args.includes("/eaglerforge");
|
|
EFI.conf.doServerExtras = args.includes("/server_extras");
|
|
EFI.conf.doMinifyPlus = args.includes("/minify_extras");
|
|
EFI.conf.verbose = args.includes("/verbose");
|
|
const string = await fs.readFile(inputFile, {encoding: 'utf-8'});
|
|
const res = await EFI.patchClient(string, new DOMParser());
|
|
if (res) {
|
|
var output = args[1];
|
|
if (!output || !output.endsWith(".html")) {
|
|
output = "processed.html";
|
|
}
|
|
console.log("Writing to " + output);
|
|
await fs.writeFile(output, res);
|
|
console.log("Done!");
|
|
}
|
|
}
|
|
main(); |