diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-28 08:19:03 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-28 08:19:03 +0000 |
commit | 33cd99f204403f6f486507d4494c84880e85593c (patch) | |
tree | f36834196b1a7b5987b48d3b7bd9110d9b10b80a | |
parent | Remove old extract_user function, replaced by username property of SSHPublicK... (diff) | |
download | gitosis-dakkar-33cd99f204403f6f486507d4494c84880e85593c.tar.gz gitosis-dakkar-33cd99f204403f6f486507d4494c84880e85593c.tar.bz2 gitosis-dakkar-33cd99f204403f6f486507d4494c84880e85593c.zip |
Add support for custom perms during repo creation.
-rw-r--r-- | gitosis/repository.py | 7 | ||||
-rw-r--r-- | gitosis/serve.py | 8 | ||||
-rw-r--r-- | gitosis/test/test_repository.py | 7 |
3 files changed, 19 insertions, 3 deletions
diff --git a/gitosis/repository.py b/gitosis/repository.py index db74046..1e27b2a 100644 --- a/gitosis/repository.py +++ b/gitosis/repository.py @@ -21,6 +21,7 @@ def init( path, template=None, _git=None, + mode=0750, ): """ Create a git repository at C{path} (if missing). @@ -34,11 +35,15 @@ def init( @param template: Template directory, to pass to C{git init}. @type template: str + + @param mode: Permissions for the new reposistory + + @type mode: int """ if _git is None: _git = 'git' - util.mkdir(path, 0750) + util.mkdir(path, mode) args = [ _git, '--git-dir=.', diff --git a/gitosis/serve.py b/gitosis/serve.py index c473de5..9718758 100644 --- a/gitosis/serve.py +++ b/gitosis/serve.py @@ -9,6 +9,7 @@ import logging import sys, os, re from gitosis import access +from gitosis import configutil from gitosis import repository from gitosis import app from gitosis import util @@ -107,11 +108,14 @@ def serve(cfg, user, command): # create leading directories path = topdir + newdirmode = configutil.get_default(cfg, 'repo %s' % (relpath, ), 'dirmode', None) + if newdirmode is None: + newdirmode = configutil.get_default(cfg, 'gitosis', 'dirmode', 0750) for segment in repopath.split(os.sep)[:-1]: path = os.path.join(path, segment) - util.mkdir(path, 0750) + util.mkdir(path, newdirmode) - repository.init(path=fullpath) + repository.init(path=fullpath, mode=newdirmode) run_hook.build_reposistory_data(cfg) # put the verb back together with the new path diff --git a/gitosis/test/test_repository.py b/gitosis/test/test_repository.py index 4890c47..50e2661 100644 --- a/gitosis/test/test_repository.py +++ b/gitosis/test/test_repository.py @@ -36,6 +36,13 @@ def test_init_exist_dir(): check_mode(path, 0710, is_dir=True) check_bare(path) +def test_init_custom_perm(): + tmp = maketemp() + path = os.path.join(tmp, 'repo.git') + repository.init(path, mode=0711) + check_mode(path, 0711, is_dir=True) + check_bare(path) + def test_init_exist_git(): tmp = maketemp() path = os.path.join(tmp, 'repo.git') |