From 9d8d23cec8dda76b7326d277c1d6fb8b4e1a1889 Mon Sep 17 00:00:00 2001 From: Mizzajl Date: Sun, 13 Oct 2024 13:35:50 +0200 Subject: [PATCH] ... --- Mizzajl/home/Library.js | 4 +-- Mizzajl/home/testdistribute.js | 49 ++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/Mizzajl/home/Library.js b/Mizzajl/home/Library.js index d2c1fbc..fe130cf 100644 --- a/Mizzajl/home/Library.js +++ b/Mizzajl/home/Library.js @@ -260,7 +260,7 @@ export function listWorkServers(ns) { const sFileName = "serverList.txt"; if (!ns.fileExists(sFileName, "home")) { ns.print(`ERROR ${sFileName} does not exist.`); return false; }; let serverList = JSON.parse(ns.read(sFileName)); - ns.tprint(serverList); + //ns.tprint(serverList); //const oList = sortDataByNestedKey(serverList, 'serverCores'); let nTotalWorkerRAM = 0; @@ -273,7 +273,7 @@ export function listWorkServers(ns) { ns.printRaw("┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓"); ns.printRaw("┃ Server ┃ Free / Max RAM ┃ Cores ┃"); ns.printRaw("┣━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━┫"); - for (const [name, entry] of Object.entries(oList)) { + for (const [name, entry] of Object.entries(serverList)) { if (entry.rootAccess && entry.maxRam >= 1) { let sServerName = entry.serverName.padEnd(nServerColumnWidth, ' '); let nFreeRAM = entry.maxRam - ns.getServerUsedRam(entry.serverName); diff --git a/Mizzajl/home/testdistribute.js b/Mizzajl/home/testdistribute.js index c4adf02..7257181 100644 --- a/Mizzajl/home/testdistribute.js +++ b/Mizzajl/home/testdistribute.js @@ -1,14 +1,59 @@ /** @param {NS} ns */ export async function main(ns) { + ns.tail(); const sScript = ns.args[0]; // script 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++) { let sHost = ""; - ns.exec(sScript, sHost, nThreads); + ns.exec(sScript, sHost, nThreads, sTarget, bRepeat, nMsecDelay); } + */ } \ No newline at end of file