hacker.js: refactor schedule correction logic into schedule making logic to prevent having to iterate to schedule twice.
[?]
Sep 6, 2020, 12:57 PM
TXTXXNNBGMGN3POGN5VMGWGN5IF3VF5KAYUWJIQ7HKIONGTBZLBQCDependencies
- [2]
JS52JD4Qweaken_manager.js: add. lib_server_used.js: move to lib_ram_script. lib_ps: delete. main.js, hacker.js, lib_ram_script.js: refactor. README.md: update. - [3]
SXEJJKPIexecutables: add `--help` flag. hacker.js: change scheduling logic. refactor. kill.js: allow handling more than one server or script at a time. cyclic_weaken.js: add. README.md: update. - [4]
U2SGR33Ghacker.js: minor refactor. - [5]
2BKHJI2Sinit - [6]
ZVQK2652executables: fix help message. - [7]
JGNALSUQadd "cyclic_weaken.js" feature. hacker.js, main.js, libs: refactor. README.md: update.
Change contents
- edit in sbin/hacker.js at line 44
array_get_clone, - replacement in sbin/hacker.js at line 823
return (object_server_target_after.apply_job(object_job) &&(object_job.float_server_target_security_after =object_server_target_after.security_current),object_job);};// returns a schedule with jobs near the end that prevent it from achieving minimum security removed so the target server has minimum security when the schedule finishes. if no jobs achieve minimum security, return the original schedule.const array_get_schedule_corrected = function (ns,array_schedule) {constarray_schedule_edited = array_get_clone(array_schedule),float_server_target_security_minimum = ns.getServerMinSecurityLevel(array_schedule_edited[0].string_server_target);let boolean_have_seen_job_with_security_minimum = !1;for (;!boolean_have_seen_job_with_security_minimum &&array_schedule_edited.length > 0;)for (let integer_index_job = array_schedule_edited.length - 1;integer_index_job >= 0 && !boolean_have_seen_job_with_security_minimum;--integer_index_job) {const object_job = array_schedule_edited[integer_index_job];if (object_job.float_server_target_security_after ===float_server_target_security_minimum) {boolean_have_seen_job_with_security_minimum = !0;break;}array_schedule_edited.splice(integer_index_job, 1);}return boolean_have_seen_job_with_security_minimum &&0 !== array_schedule_edited.length? array_schedule_edited: array_schedule;object_server_target_after.apply_job(object_job);object_job.float_server_target_security_after = object_server_target_after.security_current;return object_job; - edit in sbin/hacker.js at line 843
float_server_target_security_minimum = ns.getServerMinSecurityLevel(string_server_target), - replacement in sbin/hacker.js at line 847
let array_servers_used = array_make_servers(letarray_servers_used = array_make_servers( - replacement in sbin/hacker.js at line 852
);),integer_last_seen_job_index_with_security_minimum = -1; - edit in sbin/hacker.js at line 873
if (object_job.float_server_target_security_after ===float_server_target_security_minimum) {integer_last_seen_job_index_with_security_minimum = array_schedule.length;} - replacement in sbin/hacker.js at line 885
return array_get_schedule_corrected(ns, array_schedule);// return a schedule with jobs near the end that prevent it from achieving minimum security removed so the target server has minimum security when the schedule finishes. if no jobs achieve minimum security, return the original schedule.return (integer_last_seen_job_index_with_security_minimum > 0)? array_schedule.slice(0, integer_last_seen_job_index_with_security_minimum + 1): array_schedule; - replacement in lib/lib_no_ns.js at line 105
export const array_get_clone = function (array_original) {const array_get_clone = function (array_original) {