aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/backend/proc.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mlia/backend/proc.py')
-rw-r--r--src/mlia/backend/proc.py26
1 files changed, 4 insertions, 22 deletions
diff --git a/src/mlia/backend/proc.py b/src/mlia/backend/proc.py
index a4c0be3..911d672 100644
--- a/src/mlia/backend/proc.py
+++ b/src/mlia/backend/proc.py
@@ -9,6 +9,7 @@ import datetime
import logging
import shlex
import signal
+import tempfile
import time
from pathlib import Path
from typing import Any
@@ -33,13 +34,6 @@ class CommandFailedException(Exception):
class ShellCommand:
"""Wrapper class for shell commands."""
- def __init__(self, base_log_path: str = "/tmp") -> None:
- """Initialise the class.
-
- base_log_path: it is the base directory where logs will be stored
- """
- self.base_log_path = base_log_path
-
def run(
self,
cmd: str,
@@ -73,18 +67,15 @@ class ShellCommand:
out, err = _out, _err
if not _out and not _err:
- out, err = [
- str(item)
- for item in self.get_stdout_stderr_paths(self.base_log_path, cmd)
- ]
+ out, err = [str(item) for item in self.get_stdout_stderr_paths(cmd)]
return command(_out=out, _err=err, _tee=_tee, _bg=_bg, _bg_exc=False)
@classmethod
- def get_stdout_stderr_paths(cls, base_log_path: str, cmd: str) -> Tuple[Path, Path]:
+ def get_stdout_stderr_paths(cls, cmd: str) -> Tuple[Path, Path]:
"""Construct and returns the paths of stdout/stderr files."""
timestamp = datetime.datetime.now().timestamp()
- base_path = Path(base_log_path)
+ base_path = Path(tempfile.mkdtemp(prefix="mlia-", suffix=f"{timestamp}"))
base = base_path / f"{valid_for_filename(cmd, '_')}_{timestamp}"
stdout = base.with_suffix(".out")
stderr = base.with_suffix(".err")
@@ -108,15 +99,6 @@ def parse_command(command: str, shell: str = "bash") -> List[str]:
return [cmd] + args
-def get_stdout_stderr_paths(
- command: str, base_log_path: str = "/tmp"
-) -> Tuple[Path, Path]:
- """Construct and returns the paths of stdout/stderr files."""
- cmd, *_ = parse_command(command)
-
- return ShellCommand.get_stdout_stderr_paths(base_log_path, cmd)
-
-
def execute_command( # pylint: disable=invalid-name
command: str,
cwd: Path,