Add catalyst.util.remove_dir() helper function
authorAndrew Gaffney <agaffney@gentoo.org>
Sun, 13 Sep 2009 18:12:59 +0000 (13:12 -0500)
committerAndrew Gaffney <agaffney@gentoo.org>
Sun, 13 Sep 2009 18:12:59 +0000 (13:12 -0500)
ChangeLog
modules/catalyst/util.py

index fe8eb22f3cae38e1fcd1a9e2934b78318ec7fb9c..14376f10ac5773bd91b94e122f2c8bf58a2e52a4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,10 @@
 # Distributed under the GPL v2
 # $Id$
 
+  13 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
+  modules/catalyst/util.py:
+  Add catalyst.util.remove_dir() helper function
+
   12 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
   modules/catalyst/util.py:
   Remove unnecessary os.path import
index f0dbdd269b5d04ff1a799d02a9543892ba59f7da..122212fd8008f7e413277c4df24a3271a5045a5a 100644 (file)
@@ -195,16 +195,25 @@ def addl_arg_parse(myspec,addlargs,requiredspec,validspec):
                if not x in myspec:
                        raise CatalystError, "Required argument \""+x+"\" not specified."
 
-def empty_dir(path):
-       mystat = os.stat(path)
+def remove_dir(path):
        if os.uname()[0] == "FreeBSD":
                cmd("chflags -R noschg " + path, \
                        "Could not remove immutable flag for file " \
                        + path)
-       shutil.rmtree(path)
-       os.makedirs(path, 0755)
-       os.chown(path, mystat[stat.ST_UID], mystat[stat.ST_GID])
-       os.chmod(path, mystat[stat.ST_MODE])
+       try:
+               shutil.rmtree(path)
+       except:
+               raise CatalystError("Could not remove directory '%s'" % (path,))
+
+def empty_dir(path):
+       try:
+               mystat = os.stat(path)
+               remove_dir(path)
+               os.makedirs(path, 0755)
+               os.chown(path, mystat[stat.ST_UID], mystat[stat.ST_GID])
+               os.chmod(path, mystat[stat.ST_MODE])
+       except:
+               raise CatalystError("Could not empty directory '%s'" % (path,))
 
 
 # vim: ts=4 sw=4 sta noet sts=4 ai