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):