2021-09-16 01:50:44 +02:00
|
|
|
import { ITerminal } from "../ITerminal";
|
2021-09-17 08:58:02 +02:00
|
|
|
import { IRouter } from "../../ui/Router";
|
2021-09-16 01:50:44 +02:00
|
|
|
import { IPlayer } from "../../PersonObjects/IPlayer";
|
|
|
|
import { BaseServer } from "../../Server/BaseServer";
|
|
|
|
|
|
|
|
export function ps(
|
|
|
|
terminal: ITerminal,
|
2021-09-17 08:58:02 +02:00
|
|
|
router: IRouter,
|
2021-09-16 01:50:44 +02:00
|
|
|
player: IPlayer,
|
|
|
|
server: BaseServer,
|
2021-12-03 20:44:32 +01:00
|
|
|
args: (string | number | boolean)[],
|
2021-09-16 01:50:44 +02:00
|
|
|
): void {
|
2021-12-24 02:39:45 +01:00
|
|
|
if (args.length === 1 || args.length === 2 || args.length > 3) {
|
|
|
|
terminal.error("Incorrect usage of ps command. Usage: ps [| grep <pattern>]");
|
2021-09-16 01:50:44 +02:00
|
|
|
return;
|
|
|
|
}
|
2021-12-24 02:39:45 +01:00
|
|
|
if(args[0] === '|' && args[1] === 'grep'){
|
|
|
|
const pattern = new RegExp(`${args[2].toString()}`)
|
|
|
|
const matching = server.runningScripts.filter((x) => pattern.test(x.filename))
|
|
|
|
for(let i = 0; i < matching.length; i++){
|
|
|
|
const rsObj = matching[i];
|
|
|
|
let res = `(PID - ${rsObj.pid}) ${rsObj.filename}`;
|
|
|
|
for (let j = 0; j < rsObj.args.length; ++j) {
|
|
|
|
res += " " + rsObj.args[j].toString();
|
|
|
|
}
|
|
|
|
terminal.print(res);
|
2021-09-16 01:50:44 +02:00
|
|
|
}
|
2021-12-24 02:39:45 +01:00
|
|
|
}else if(args.length === 0){
|
|
|
|
for (let i = 0; i < server.runningScripts.length; i++) {
|
|
|
|
const rsObj = server.runningScripts[i];
|
|
|
|
let res = `(PID - ${rsObj.pid}) ${rsObj.filename}`;
|
|
|
|
for (let j = 0; j < rsObj.args.length; ++j) {
|
|
|
|
res += " " + rsObj.args[j].toString();
|
|
|
|
}
|
|
|
|
terminal.print(res);
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
terminal.error("Incorrect usage of ps command. Usage: ps [| grep <pattern>]");
|
|
|
|
return;
|
2021-09-16 01:50:44 +02:00
|
|
|
}
|
|
|
|
}
|