From a8d0b6e13d8682a24df1a4059bbd3948a679182c Mon Sep 17 00:00:00 2001 From: Olivier Gagnon <oli.gagnon4418@gmail.com> Date: Sat, 1 May 2021 23:33:44 -0400 Subject: [PATCH] Tail now accepts PID --- src/Terminal.jsx | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/src/Terminal.jsx b/src/Terminal.jsx index 20ea87ef4..6fcf04884 100644 --- a/src/Terminal.jsx +++ b/src/Terminal.jsx @@ -53,7 +53,11 @@ import { Player } from "./Player"; import { hackWorldDaemon } from "./RedPill"; import { RunningScript } from "./Script/RunningScript"; import { getRamUsageFromRunningScript } from "./Script/RunningScriptHelpers"; -import { getCurrentEditor, findRunningScript } from "./Script/ScriptHelpers"; +import { + getCurrentEditor, + findRunningScript, + findRunningScriptByPid, +} from "./Script/ScriptHelpers"; import { isScriptFilename } from "./Script/ScriptHelpersTS"; import { AllServers } from "./Server/AllServers"; import { @@ -1406,25 +1410,34 @@ let Terminal = { if (commandArray.length < 2) { postError("Incorrect number of arguments. Usage: tail [script] [arg1] [arg2]..."); } else { - const scriptName = Terminal.getFilepath(commandArray[1]); - if (!isScriptFilename(scriptName)) { - postError("tail can only be called on .script files (filename must end with .script)"); - return; - } + if(typeof commandArray[1] === 'string') { + const scriptName = Terminal.getFilepath(commandArray[1]); + if (!isScriptFilename(scriptName)) { + postError("tail can only be called on .script, .ns, .js files, or by pid"); + return; + } - // Get script arguments - const args = []; - for (let i = 2; i < commandArray.length; ++i) { - args.push(commandArray[i]); - } + // Get script arguments + const args = []; + for (let i = 2; i < commandArray.length; ++i) { + args.push(commandArray[i]); + } - // Check that the script exists on this machine - const runningScript = findRunningScript(scriptName, args, s); - if (runningScript == null) { - postError("No such script exists"); - return; + // Check that the script exists on this machine + const runningScript = findRunningScript(scriptName, args, s); + if (runningScript == null) { + postError("No such script exists"); + return; + } + logBoxCreate(runningScript); + } else { + const runningScript = findRunningScriptByPid(commandArray[1], Player.getCurrentServer()); + if (runningScript == null) { + postError("No such script exists"); + return; + } + logBoxCreate(runningScript); } - logBoxCreate(runningScript); } } catch(e) { Terminal.postThrownError(e);