Compare commits

...

2 Commits

2 changed files with 49 additions and 4 deletions

View File

@@ -260,7 +260,7 @@ export function listWorkServers(ns) {
const sFileName = "serverList.txt"; const sFileName = "serverList.txt";
if (!ns.fileExists(sFileName, "home")) { ns.print(`ERROR ${sFileName} does not exist.`); return false; }; if (!ns.fileExists(sFileName, "home")) { ns.print(`ERROR ${sFileName} does not exist.`); return false; };
let serverList = JSON.parse(ns.read(sFileName)); let serverList = JSON.parse(ns.read(sFileName));
ns.tprint(serverList); //ns.tprint(serverList);
//const oList = sortDataByNestedKey(serverList, 'serverCores'); //const oList = sortDataByNestedKey(serverList, 'serverCores');
let nTotalWorkerRAM = 0; let nTotalWorkerRAM = 0;
@@ -273,7 +273,7 @@ export function listWorkServers(ns) {
ns.printRaw("┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓"); ns.printRaw("┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓");
ns.printRaw("┃ Server ┃ Free / Max RAM ┃ Cores ┃"); ns.printRaw("┃ Server ┃ Free / Max RAM ┃ Cores ┃");
ns.printRaw("┣━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━┫"); ns.printRaw("┣━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━┫");
for (const [name, entry] of Object.entries(oList)) { for (const [name, entry] of Object.entries(serverList)) {
if (entry.rootAccess && entry.maxRam >= 1) { if (entry.rootAccess && entry.maxRam >= 1) {
let sServerName = entry.serverName.padEnd(nServerColumnWidth, ' '); let sServerName = entry.serverName.padEnd(nServerColumnWidth, ' ');
let nFreeRAM = entry.maxRam - ns.getServerUsedRam(entry.serverName); let nFreeRAM = entry.maxRam - ns.getServerUsedRam(entry.serverName);

View File

@@ -1,14 +1,59 @@
/** @param {NS} ns */ /** @param {NS} ns */
export async function main(ns) { export async function main(ns) {
ns.tail();
const sScript = ns.args[0]; // script const sScript = ns.args[0]; // script
const nThreads = ns.args[1]; // threads const nThreads = ns.args[1]; // threads
const sArgs = [...arguments]; const sTarget = ns.args[2]; // target server
const bRepeat = ns.args[3]; // should this script loop
const nMsecDelay = ns.args[4]; // MsecDelay
const sWeakenScript = "RMweaken.js";
const sGrowScript = "RMgrow.js";
const sHackScript = "RMhack.js";
const sListName = "serverList.txt";
const sWorkerList = "WorkerList.txt";
if (!ns.fileExists(sListName, "home")) { ns.print(`ERROR ${sListName} does not exist.`); return false; };
let sServerList = JSON.parse(ns.read(sListName));
ns.print(sScript);
ns.print(nThreads);
ns.print(sTarget);
const nScriptSize = ns.getScriptRam(sScript, "home");
const nTotalSize = nScriptSize * nThreads;
ns.print("nScriptSize = " + nScriptSize);
ns.print("nTotalSize = " + nTotalSize);
// get sorted list of most cores servers
// get total free RAM per number of cores
// calculate effect of cores on each server with cores > 1
// update nThreads
// run weaken/grow on core servers until cores = 1
// get sorted list of biggest RAM servers
// get total free RAM on core 1 servers
// run remaining weaken/grow
// run hack untill RAM on cores 1 servers run out
// run remaining hacks on smallest to biggest core servers
/*
for (i = 0; ; i++) { for (i = 0; ; i++) {
let sHost = ""; let sHost = "";
ns.exec(sScript, sHost, nThreads); ns.exec(sScript, sHost, nThreads, sTarget, bRepeat, nMsecDelay);
} }
*/
} }