Files
pear/core/shell.ts
T
2022-07-26 01:41:08 -05:00

16 lines
442 B
TypeScript

/**
* Run a shell command that can be aborted using an `AbortSignal`
* @since 2021-08-13
*/
export async function abortableExec(opts: { cmd: string[], signal?: AbortSignal }): Promise<void> {
const { cmd, signal } = opts
if (signal && signal.aborted) return
const p = Deno.run({
cmd,
stdout: "null"
})
signal && signal.addEventListener('abort', () => p.kill("SIGINT"))
await p.status()
return
}