summaryrefslogtreecommitdiff
path: root/dots_manager/shell.py
diff options
context:
space:
mode:
Diffstat (limited to 'dots_manager/shell.py')
-rw-r--r--dots_manager/shell.py14
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