You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
687 B
Python
26 lines
687 B
Python
import subprocess
|
|
from .host import host
|
|
|
|
|
|
class Run:
|
|
resource_name = "run"
|
|
|
|
def __init__(self, label, section):
|
|
self.label = label or None
|
|
self.cmd = section.get("cmd", "").split()
|
|
self.cwd = section.get("cwd", host.dotfiles_root)
|
|
self.shell = section.get("shell", False)
|
|
|
|
def run(self):
|
|
kwargs = {
|
|
"cwd": self.cwd,
|
|
"stdout": subprocess.PIPE,
|
|
"text": True,
|
|
"shell": self.shell,
|
|
}
|
|
with subprocess.Popen(self.cmd, **kwargs) as proc:
|
|
if proc.stdout is not None:
|
|
line = proc.stdout.read()
|
|
if line:
|
|
print(line)
|