init commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
import { getNodes } from "getNodes.js";
|
||||
|
||||
// Contract Solution Imports
|
||||
import { caesarEncrypt } from "contracts/CaesarEncryption.js";
|
||||
import { lzDecompress } from "contracts/LZ-Decompress.js";
|
||||
import { generateIPAddresses } from "contracts/GenerateIPAddresses.js";
|
||||
|
||||
/** @param {NS} ns */
|
||||
export async function main(ns) {
|
||||
const nodes = await getNodes(ns);
|
||||
var listAllContracts = false;
|
||||
|
||||
if(nodes == null || nodes.length == 0) {
|
||||
ns.tprint("Error retrieving nodes!");
|
||||
return;
|
||||
}
|
||||
|
||||
if(ns.args.length != 0) {
|
||||
if((ns.args[0] == "--all" || ns.args[0] == "-a") && ns.args.length == 1) {
|
||||
listAllContracts = true;
|
||||
} else {
|
||||
ns.tprint("Invalid usage!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
// scan(host)
|
||||
nodes.forEach(function(n) {
|
||||
if(n != "" || n != "\n") {
|
||||
var contracts = [];
|
||||
var files = ns.ls(n);
|
||||
files.forEach(function(f) {
|
||||
if(f.endsWith(".cct")) {
|
||||
if(listAllContracts) {
|
||||
ns.tprint(n + ":" + ns.codingcontract.getContractType(f, n));
|
||||
}
|
||||
contracts.push(f);
|
||||
}
|
||||
});
|
||||
contracts.forEach(function(c) {
|
||||
var contractType = ns.codingcontract.getContractType(c, n);
|
||||
var data = ns.codingcontract.getData(c, n);
|
||||
|
||||
if(contractType == "Encryption I: Caesar Cipher") {
|
||||
var answer = caesarEncrypt(data[0], data[1])
|
||||
var attempt = ns.codingcontract.attempt(answer, c, n);
|
||||
if(attempt)
|
||||
ns.tprint(attempt);
|
||||
else
|
||||
ns.tprint("Attempt failed! Manual intervention is required.");
|
||||
} else if(contractType == "Compression II: LZ Decompression") {
|
||||
var answer = lzDecompress(ns, data);
|
||||
var attempt = ns.codingcontract.attempt(answer, c, n);
|
||||
if(attempt)
|
||||
ns.tprint(attempt);
|
||||
else
|
||||
ns.tprint("Attempt failed! Manual intervention is required.");
|
||||
} else if(contractType == "Generate IP Addresses") {
|
||||
var answer = generateIPAddresses(data[0]);
|
||||
var attempt = ns.codingcontract.attempt(answer, c, n);
|
||||
if(attempt)
|
||||
ns.tprint(attempt);
|
||||
else
|
||||
ns.tprint("Attempt failed! Manual intervention is required.");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user