From 1c16ac360a3fc63bfb1008c3a935907fe9064f26 Mon Sep 17 00:00:00 2001 From: Greg Ward Date: Wed, 2 Aug 2000 01:37:30 +0000 Subject: Added the 'execute()' function (moved here from cmd.py with minor tweakage). --- Lib/distutils/util.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index d69626e..37cd4b5 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -223,3 +223,29 @@ def split_quoted (s): return words # split_quoted () + + +def execute (func, args, msg=None, verbose=0, dry_run=0): + """Perform some action that affects the outside world (eg. by writing + to the filesystem). Such actions are special because they are disabled + by the 'dry_run' flag, and announce themselves if 'verbose' is true. + This method takes care of all that bureaucracy for you; all you have to + do is supply the function to call and an argument tuple for it (to + embody the "external action" being performed), and an optional message + to print. + """ + # Generate a message if we weren't passed one + if msg is None: + msg = "%s%s" % (func.__name__, `args`) + if msg[-2:] == ',)': # correct for singleton tuple + msg = msg[0:-2] + ')' + + # Print it if verbosity level is high enough + if verbose: + print msg + + # And do it, as long as we're not in dry-run mode + if not dry_run: + apply(func, args) + +# execute() -- cgit v0.12