diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-15 05:58:36 -0800 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-18 01:12:21 -0800 |
commit | 204c2e0781ce89fd8abb7f1249920ce90414f9f6 (patch) | |
tree | 08ccb761125a0276ae1c88037a59488a89e67ed6 /gitosis | |
parent | Pylint cleanups for run_hook.py. (diff) | |
download | gitosis-dakkar-204c2e0781ce89fd8abb7f1249920ce90414f9f6.tar.gz gitosis-dakkar-204c2e0781ce89fd8abb7f1249920ce90414f9f6.tar.bz2 gitosis-dakkar-204c2e0781ce89fd8abb7f1249920ce90414f9f6.zip |
Factor out functions with a common errno ignore block.
Diffstat (limited to 'gitosis')
-rw-r--r-- | gitosis/gitdaemon.py | 8 | ||||
-rw-r--r-- | gitosis/init.py | 8 | ||||
-rw-r--r-- | gitosis/run_hook.py | 8 | ||||
-rw-r--r-- | gitosis/util.py | 25 |
4 files changed, 28 insertions, 21 deletions
diff --git a/gitosis/gitdaemon.py b/gitosis/gitdaemon.py index e1e0e9a..e529302 100644 --- a/gitosis/gitdaemon.py +++ b/gitosis/gitdaemon.py @@ -30,13 +30,7 @@ def allow_export(repopath): def deny_export(repopath): """Remove the ``git-daemon-export-ok`` marker for a given repository.""" path = export_ok_path(repopath) - try: - os.unlink(path) - except OSError, ex: - if ex.errno == errno.ENOENT: - pass - else: - raise + util.unlink(path) def _extract_reldir(topdir, dirpath): """ diff --git a/gitosis/init.py b/gitosis/init.py index 87ad9a7..71cf074 100644 --- a/gitosis/init.py +++ b/gitosis/init.py @@ -52,13 +52,7 @@ def initial_commit(git_dir, cfg, pubkey, user): def symlink_config(git_dir): dst = os.path.expanduser('~/.gitosis.conf') tmp = '%s.%d.tmp' % (dst, os.getpid()) - try: - os.unlink(tmp) - except OSError, e: - if e.errno == errno.ENOENT: - pass - else: - raise + util.unlink(tmp) os.symlink( os.path.join(git_dir, 'gitosis.conf'), tmp, diff --git a/gitosis/run_hook.py b/gitosis/run_hook.py index 790a5f9..068dbe1 100644 --- a/gitosis/run_hook.py +++ b/gitosis/run_hook.py @@ -27,13 +27,7 @@ def post_update(cfg, git_dir): 6. Update the Gitosis SSH keys. """ export = os.path.join(git_dir, 'gitosis-export') - try: - shutil.rmtree(export) - except OSError, ex: - if ex.errno == errno.ENOENT: - pass - else: - raise + util.rmtree(export) repository.export(git_dir=git_dir, path=export) os.rename( os.path.join(export, 'gitosis.conf'), diff --git a/gitosis/util.py b/gitosis/util.py index ad0989c..4ae3d0c 100644 --- a/gitosis/util.py +++ b/gitosis/util.py @@ -3,6 +3,7 @@ Some utility functions for Gitosis """ import errno import os +import shutil from ConfigParser import NoSectionError, NoOptionError def mkdir(newdir, mode=0777): @@ -17,6 +18,30 @@ def mkdir(newdir, mode=0777): else: raise +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 + +def rmtree(directory): + """ + Like shutil.rmtree, but non-existing trees do not raise an error. + """ + try: + shutil.rmtree(directory) + except OSError, ex: + if ex.errno == errno.ENOENT: + pass + else: + raise + def getRepositoryDir(config): """ Find the location of the Git repositories. |