aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2007-12-17 21:50:34 -0800
committerRobin H. Johnson <robbat2@gentoo.org>2007-12-18 01:12:22 -0800
commit443680c9c98c9760b6869c01d16b323cb89717a7 (patch)
tree6cbeb40e838d9258a7892652eb80629a6a3e0415
parentPylint cleanup of init.py. (diff)
downloadgitosis-dakkar-443680c9c98c9760b6869c01d16b323cb89717a7.tar.gz
gitosis-dakkar-443680c9c98c9760b6869c01d16b323cb89717a7.tar.bz2
gitosis-dakkar-443680c9c98c9760b6869c01d16b323cb89717a7.zip
Remove more duplicate code.
-rw-r--r--gitosis/util.py29
1 files changed, 13 insertions, 16 deletions
diff --git a/gitosis/util.py b/gitosis/util.py
index 4ae3d0c..77e04ca 100644
--- a/gitosis/util.py
+++ b/gitosis/util.py
@@ -10,34 +10,31 @@ def mkdir(newdir, mode=0777):
"""
Like os.mkdir, but already existing directories do not raise an error.
"""
- try:
- os.mkdir(newdir, mode)
- except OSError, ex:
- if ex.errno == errno.EEXIST:
- pass
- else:
- raise
+ _sysfunc(os.mkdir, [errno.EEXIST], newdir, mode=mode)
def unlink(filename):
"""
Like os.unlink, but non-existing files do not raise an error.
"""
- try:
- os.unlink(filename)
- except OSError, ex:
- if ex.errno == errno.ENOENT:
- pass
- else:
- raise
+ _sysfunc(os.unlink, [errno.ENOENT], filename)
def rmtree(directory):
"""
Like shutil.rmtree, but non-existing trees do not raise an error.
"""
+ _sysfunc(shutil.rmtree, [errno.ENOENT], directory)
+
+def _sysfunc(func, ignore, *args, **kwds):
+ """
+ Run the specified function, ignoring the specified errno if raised, and
+ raising other errors.
+ """
+ if not ignore:
+ ignore = []
try:
- shutil.rmtree(directory)
+ func(args, kwds)
except OSError, ex:
- if ex.errno == errno.ENOENT:
+ if ex.errno in ignore:
pass
else:
raise