diff options
Diffstat (limited to 'cli/js/ops/process.ts')
-rw-r--r-- | cli/js/ops/process.ts | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cli/js/ops/process.ts b/cli/js/ops/process.ts new file mode 100644 index 000000000..31ce0b33e --- /dev/null +++ b/cli/js/ops/process.ts @@ -0,0 +1,47 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { sendSync, sendAsync } from "./dispatch_json.ts"; +import { assert } from "../util.ts"; + +/** Send a signal to process under given PID. Unix only at this moment. + * If pid is negative, the signal will be sent to the process group identified + * by -pid. + * Requires the `--allow-run` flag. + */ +export function kill(pid: number, signo: number): void { + sendSync("op_kill", { pid, signo }); +} + +interface RunStatusResponse { + gotSignal: boolean; + exitCode: number; + exitSignal: number; +} + +export async function runStatus(rid: number): Promise<RunStatusResponse> { + return await sendAsync("op_run_status", { rid }); +} + +interface RunRequest { + args: string[]; + 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 { + assert(request.args.length > 0); + return sendSync("op_run", request); +} |