Files
jpdebug/runners/shell.lua

47 lines
819 B
Lua

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