summaryrefslogtreecommitdiff
path: root/Lib/distutils/util.py
diff options
context:
space:
mode:
authorGreg Ward <gward@python.net>2000-08-02 01:37:30 +0000
committerGreg Ward <gward@python.net>2000-08-02 01:37:30 +0000
commit49d399d784985d69e0ce8d43be45f50fadee8a9a (patch)
tree74c026f4602139ea9d02885d8a9745b6f7a201f4 /Lib/distutils/util.py
parent60ebb1617e9fa47636522af700571162f59cf995 (diff)
downloadcpython-49d399d784985d69e0ce8d43be45f50fadee8a9a.tar.gz
Added the 'execute()' function (moved here from cmd.py with minor tweakage).
Diffstat (limited to 'Lib/distutils/util.py')
-rw-r--r--Lib/distutils/util.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index d69626e1f1..37cd4b554e 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()