diff options
Diffstat (limited to 'dots_manager/shell.py')
-rw-r--r-- | dots_manager/shell.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/dots_manager/shell.py b/dots_manager/shell.py new file mode 100644 index 0000000..afd705a --- /dev/null +++ b/dots_manager/shell.py @@ -0,0 +1,14 @@ +import subprocess +import logging +from typing import List, Optional + + +def run_shell_command(cmd: List[str], logger: logging.Logger) -> Optional[str]: + logger.debug(f"running command: {cmd}") + try: + return subprocess.run( + cmd, capture_output=True, text=True, check=True + ).stdout.strip() + except subprocess.CalledProcessError as e: + logger.error(f"command failed: {cmd}, {e.stderr}") + return None |