]> granicus.if.org Git - python/commitdiff
Patch from Bastian Kleineidam <calvin@cs.uni-sb.de>: added 'remove_tree()'.
authorGreg Ward <gward@python.net>
Sat, 18 Mar 2000 15:42:22 +0000 (15:42 +0000)
committerGreg Ward <gward@python.net>
Sat, 18 Mar 2000 15:42:22 +0000 (15:42 +0000)
Lib/distutils/util.py

index 2f193fb43c5654148d3fafeff849fabe4cda84e0..7a07b656484b7c310e17923255530822cc0d9993 100644 (file)
@@ -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,