44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
/** @param {import(".").NS } ns */
|
|
|
|
export async function main(ns) {
|
|
ns.disableLog('ALL');
|
|
|
|
|
|
let excludeServers = ['home'];
|
|
for (let index = 0; index < 25; index++) {
|
|
excludeServers.push(`home-${index}`);
|
|
}
|
|
excludeServers.push('CSEC');
|
|
excludeServers.push('avmnite-02h');
|
|
/**
|
|
* Recursively kill simple-hack.js running on servers in the network
|
|
* @async
|
|
* @param {string} currentServer server to scan
|
|
*/
|
|
async function scanServer(currentServer, maxDepth = Number.MAX_SAFE_INTEGER, depth = 1, previousServer = currentServer) {
|
|
if (depth <= maxDepth) {
|
|
let availableServers = ns.scan(currentServer);
|
|
|
|
for (let i = 0; i < availableServers.length; ++i) {
|
|
let nextServer = availableServers[i];
|
|
|
|
if (nextServer != currentServer && nextServer != previousServer) {
|
|
if (excludeServers.indexOf(nextServer) == -1) ns.scriptKill('simple-hack.js', nextServer);
|
|
await scanServer(nextServer, maxDepth, depth + 1, currentServer);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
await ns.sleep(10);
|
|
}
|
|
|
|
|
|
let runDepth = ns.args.length ? ns.args[0] : 1;
|
|
ns.tprint(`Running scan depth: ${runDepth}`);
|
|
await scanServer('home', runDepth);
|
|
|
|
|
|
await ns.sleep(10);
|
|
}
|