From c588f5d8b79d9540b980afe9ba9b9d8b870f1ff2 Mon Sep 17 00:00:00 2001 From: Mizzajl Date: Sun, 13 Oct 2024 11:06:31 +0200 Subject: [PATCH] stuff --- Mizzajl/home/Library.js | 19 +++++++++++++++++-- Mizzajl/home/testdistribute.js | 14 ++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 Mizzajl/home/testdistribute.js diff --git a/Mizzajl/home/Library.js b/Mizzajl/home/Library.js index bd8819c..d2c1fbc 100644 --- a/Mizzajl/home/Library.js +++ b/Mizzajl/home/Library.js @@ -260,6 +260,8 @@ 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); + //const oList = sortDataByNestedKey(serverList, 'serverCores'); let nTotalWorkerRAM = 0; let nTotalFreeRAM = 0; @@ -271,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(serverList)) { + for (const [name, entry] of Object.entries(oList)) { if (entry.rootAccess && entry.maxRam >= 1) { let sServerName = entry.serverName.padEnd(nServerColumnWidth, ' '); let nFreeRAM = entry.maxRam - ns.getServerUsedRam(entry.serverName); @@ -284,5 +286,18 @@ export function listWorkServers(ns) { } } ns.printRaw("┗━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━┛"); - ns.printRaw(`Total Free: ${nTotalFreeRAM} / ${nTotalWorkerRAM} GB`); + ns.printRaw(`Total Free: ${nTotalFreeRAM.toLocaleString()} / ${nTotalWorkerRAM.toLocaleString()} GB`); +} + +function sortDataByNestedKey(data, key) { + return data.sort((a, b) => { + const aValue = Object.values(a)[0][key]; + const bValue = Object.values(b)[0][key]; + + if (typeof aValue === 'string') { + return aValue.localeCompare(bValue); + } else { + return aValue - bValue; + } + }); } \ No newline at end of file diff --git a/Mizzajl/home/testdistribute.js b/Mizzajl/home/testdistribute.js new file mode 100644 index 0000000..c4adf02 --- /dev/null +++ b/Mizzajl/home/testdistribute.js @@ -0,0 +1,14 @@ +/** @param {NS} ns */ +export async function main(ns) { + const sScript = ns.args[0]; // script + const nThreads = ns.args[1]; // threads + const sArgs = [...arguments]; + + + + for (i = 0; ; i++) { + let sHost = ""; + ns.exec(sScript, sHost, nThreads); + } + +} \ No newline at end of file