summaryrefslogtreecommitdiff
path: root/cli/js/ops/process.ts
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-03-09 15:18:02 +0100
committerGitHub <noreply@github.com>2020-03-09 15:18:02 +0100
commit886f330ec8110a3eb72feb14353f353962179d2e (patch)
treef6b458afac30a18d5120396bed9b1e63ae6d8529 /cli/js/ops/process.ts
parent1b6fc87b7188118896f797e5f0dab309775def71 (diff)
reorg: move JS ops implementations to cli/js/ops/, part 2 (#4283)
Following JS ops were moved to separate files in cli/js/ops directory: - io - process - worker_host - web_worker - plugins - timers - signal - permissions
Diffstat (limited to 'cli/js/ops/process.ts')
-rw-r--r--cli/js/ops/process.ts47
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);
+}