local core = require "core" local process = require "process" ---@class M local M = { name = "shell" } -- Run a shell command function M:run(cmd, opts, name) core.log("[jpdebug] Running shell command") if cmd then local proc = process.start(cmd, opts) return proc else core.error("[jpdebug] command not specified for target %s", name) end end -- Wait untill it ends, possibly with timeout function M:wait(proc, time) return proc:wait(time) end -- Read the stdout, returns nil if process has stopped function M:read_stdout(proc) return proc:read_stdout() end -- Read the stderr function M:read_stderr(proc) return proc:read_stderr() end -- Kill the process function M:kill(proc) proc:kill() end -- Terminate the process function M:terminate(proc) proc:terminate() end return M