mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-10-23 02:03:14 +02:00
aa7facd4ba
* Remove the limitation unique args per script * Internal changes to how runningScripts are stored on the server, to make common usage faster.
55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
import { Terminal } from "../../Terminal";
|
|
import { BaseServer } from "../../Server/BaseServer";
|
|
import { formatRam } from "../../ui/formatNumber";
|
|
|
|
export function top(args: (string | number | boolean)[], server: BaseServer): void {
|
|
if (args.length !== 0) {
|
|
Terminal.error("Incorrect usage of top command. Usage: top");
|
|
return;
|
|
}
|
|
|
|
// Headers
|
|
const scriptWidth = 40;
|
|
const pidWidth = 10;
|
|
const threadsWidth = 16;
|
|
|
|
const scriptTxt = "Script";
|
|
const pidTxt = "PID";
|
|
const threadsTxt = "Threads";
|
|
const ramTxt = "RAM Usage";
|
|
|
|
const spacesAfterScriptTxt = " ".repeat(scriptWidth - scriptTxt.length);
|
|
const spacesAfterPidTxt = " ".repeat(pidWidth - pidTxt.length);
|
|
const spacesAfterThreadsTxt = " ".repeat(threadsWidth - threadsTxt.length);
|
|
|
|
const headers = `${scriptTxt}${spacesAfterScriptTxt}${pidTxt}${spacesAfterPidTxt}${threadsTxt}${spacesAfterThreadsTxt}${ramTxt}`;
|
|
|
|
Terminal.print(headers);
|
|
|
|
const currRunningScripts = server.runningScriptMap;
|
|
// Iterate through scripts on current server
|
|
for (const byPid of currRunningScripts.values()) {
|
|
for (const script of byPid.values()) {
|
|
// Calculate name padding
|
|
const numSpacesScript = Math.max(0, scriptWidth - script.filename.length);
|
|
const spacesScript = " ".repeat(numSpacesScript);
|
|
|
|
// Calculate PID padding
|
|
const numSpacesPid = Math.max(0, pidWidth - (script.pid + "").length);
|
|
const spacesPid = " ".repeat(numSpacesPid);
|
|
|
|
// Calculate thread padding
|
|
const numSpacesThread = Math.max(0, threadsWidth - (script.threads + "").length);
|
|
const spacesThread = " ".repeat(numSpacesThread);
|
|
|
|
// Calculate and transform RAM usage
|
|
const ramUsage = formatRam(script.ramUsage * script.threads);
|
|
|
|
const entry = [script.filename, spacesScript, script.pid, spacesPid, script.threads, spacesThread, ramUsage].join(
|
|
"",
|
|
);
|
|
Terminal.print(entry);
|
|
}
|
|
}
|
|
}
|