commit:     12eabbc4ef91e04b08a301580f7dd345666b118b
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 22 01:55:04 2014 +0000
Commit:     Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Fri Apr 18 16:50:36 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/catalyst.git;a=commit;h=12eabbc4

Take most cmd() code out to the try: except: pairs

---
 catalyst/support.py | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/catalyst/support.py b/catalyst/support.py
index 3db1509..cafb5d2 100644
--- a/catalyst/support.py
+++ b/catalyst/support.py
@@ -120,25 +120,29 @@ def find_binary(myc):
        return None
 
 
-def cmd(mycmd, myexc="", env={}, debug=False):
+def cmd(mycmd, myexc="", env={}, debug=False, fail_func=None):
+       #print "***** cmd()"
+       sys.stdout.flush()
+       args=[BASH_BINARY]
+       if "BASH_ENV" not in env:
+               env["BASH_ENV"] = "/etc/spork/is/not/valid/profile.env"
+       if debug:
+               args.append("-x")
+       args.append("-c")
+       args.append(mycmd)
+
+       #if debug:
+       print "***** cmd(); args =", args
        try:
-               sys.stdout.flush()
-               args=[BASH_BINARY]
-               if "BASH_ENV" not in env:
-                       env["BASH_ENV"] = "/etc/spork/is/not/valid/profile.env"
-               if debug:
-                       args.append("-x")
-               args.append("-c")
-               args.append(mycmd)
-
-               #if debug:
-               print "***** cmd(); args =", args
                proc = Popen(args, env=env)
-               if proc.wait() != 0:
-                       raise CatalystError("cmd() NON-zero return value from: 
%s" % myexc,
-                               print_traceback=False)
        except:
                raise
+       if proc.wait() != 0:
+               if fail_func:
+                       print "CMD(), NON-Zero command return.  Running 
fail_func()"
+                       fail_func()
+               raise CatalystError("cmd() NON-zero return value from: %s" % 
myexc,
+                       print_traceback=False)
 
 
 def file_locate(settings,filelist,expand=1):

Reply via email to