about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gn3/commands.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/gn3/commands.py b/gn3/commands.py
index 9692f62..e5a3b1e 100644
--- a/gn3/commands.py
+++ b/gn3/commands.py
@@ -1,5 +1,7 @@
 """Procedures used to work with the various bio-informatics cli
 commands"""
+import subprocess
+
 from datetime import datetime
 from typing import Dict
 from typing import List
@@ -69,3 +71,14 @@ supported:
         conn.rpush("GN2::job-queue",
                    unique_id)
     return unique_id
+
+
+def run_cmd(cmd: str) -> Dict:
+    """Run CMD and return the CMD's status code and output as a dict"""
+    results = subprocess.run(cmd, capture_output=True,
+                             shell=True, check=False)
+    out = str(results.stdout, 'utf-8')
+    if results.returncode > 0:  # Error!
+        out = str(results.stderr, 'utf-8')
+    return {"code": results.returncode,
+            "output": out}