2020-03-09 10:18:02 -04:00
|
|
|
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
|
|
|
import { sendSync, sendAsync } from "./dispatch_json.ts";
|
|
|
|
import { assert } from "../util.ts";
|
2020-03-26 15:52:47 -04:00
|
|
|
import { build } from "../build.ts";
|
2020-03-09 10:18:02 -04:00
|
|
|
|
|
|
|
export function kill(pid: number, signo: number): void {
|
2020-03-26 15:52:47 -04:00
|
|
|
if (build.os === "win") {
|
|
|
|
throw new Error("Not yet implemented");
|
|
|
|
}
|
2020-03-09 10:18:02 -04:00
|
|
|
sendSync("op_kill", { pid, signo });
|
|
|
|
}
|
|
|
|
|
|
|
|
interface RunStatusResponse {
|
|
|
|
gotSignal: boolean;
|
|
|
|
exitCode: number;
|
|
|
|
exitSignal: number;
|
|
|
|
}
|
|
|
|
|
2020-03-20 09:38:34 -04:00
|
|
|
export function runStatus(rid: number): Promise<RunStatusResponse> {
|
2020-03-16 05:22:16 -04:00
|
|
|
return sendAsync("op_run_status", { rid });
|
2020-03-09 10:18:02 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
interface RunRequest {
|
2020-03-21 17:44:18 -04:00
|
|
|
cmd: string[];
|
2020-03-09 10:18:02 -04:00
|
|
|
cwd?: string;
|
|
|
|
env?: Array<[string, string]>;
|
|
|
|
stdin: string;
|
|
|
|
stdout: string;
|
|
|
|
stderr: string;
|
|
|
|
stdinRid: number;
|
|
|
|
stdoutRid: number;
|
|
|
|
stderrRid: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface RunResponse {
|
|
|
|
rid: number;
|
|
|
|
pid: number;
|
|
|
|
stdinRid: number | null;
|
|
|
|
stdoutRid: number | null;
|
|
|
|
stderrRid: number | null;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function run(request: RunRequest): RunResponse {
|
2020-03-21 17:44:18 -04:00
|
|
|
assert(request.cmd.length > 0);
|
2020-03-09 10:18:02 -04:00
|
|
|
return sendSync("op_run", request);
|
|
|
|
}
|