Signed-off-by: Matt Turner <[email protected]>
---
 catalyst/targets/snapshot.py | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/catalyst/targets/snapshot.py b/catalyst/targets/snapshot.py
index b6c72c51..497b2918 100644
--- a/catalyst/targets/snapshot.py
+++ b/catalyst/targets/snapshot.py
@@ -10,7 +10,7 @@ from pathlib import Path
 from catalyst import log
 from catalyst.base.targetbase import TargetBase
 from catalyst.lock import write_lock
-from catalyst.support import command
+from catalyst.support import CatalystError, command
 
 class snapshot(TargetBase):
     """
@@ -52,17 +52,27 @@ class snapshot(TargetBase):
                  repouri, self.gitdir],
             ]
 
-        for cmd in git_cmds:
-            log.notice('>>> ' + ' '.join(cmd))
-            subprocess.run(cmd,
-                           encoding='utf-8',
-                           close_fds=False)
-
-        sp = subprocess.run([self.git, '-C', self.gitdir, 'rev-parse', 
'stable'],
-                            stdout=subprocess.PIPE,
-                            encoding='utf-8',
-                            close_fds=False)
-        return sp.stdout.rstrip()
+        try:
+            for cmd in git_cmds:
+                log.notice('>>> ' + ' '.join(cmd))
+                subprocess.run(cmd,
+                               capture_output=True,
+                               check=True,
+                               encoding='utf-8',
+                               close_fds=False)
+
+            sp = subprocess.run([self.git, '-C', self.gitdir, 'rev-parse', 
'stable'],
+                                stdout=subprocess.PIPE,
+                                capture_output=True,
+                                check=True,
+                                encoding='utf-8',
+                                close_fds=False)
+            return sp.stdout.rstrip()
+
+        except subprocess.CalledProcessError as e:
+            raise CatalystError(f'{e.cmd} failed with return code'
+                                f'{e.returncode}\n'
+                                f'{e.output}\n')
 
     def run(self):
         if self.settings['snapshot_treeish'] == 'stable':
-- 
2.26.2


Reply via email to