diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py index 2f193fb43c5..7a07b656484 100644 --- a/Lib/distutils/util.py +++ b/Lib/distutils/util.py @@ -11,7 +11,7 @@ file causing it.""" __revision__ = "$Id$" -import os, string +import os, string, shutil from distutils.errors import * @@ -378,6 +378,25 @@ def copy_tree (src, dst, # copy_tree () +def remove_tree (directory, verbose=0, dry_run=0): + """Recursively remove an entire directory tree. Any errors are ignored + (apart from being reported to stdout if 'verbose' is true).""" + + if verbose: + print "removing '%s' (and everything under it)" % directory + if dry_run: + return + try: + shutil.rmtree(directory,1) + except (IOError, OSError), exc: + if verbose: + if exc.filename: + print "error removing %s: %s (%s)" % \ + (directory, exc.strerror, exc.filename) + else: + print "error removing %s: %s" % (directory, exc.strerror) + + # XXX I suspect this is Unix-specific -- need porting help! def move_file (src, dst, verbose=0,