diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-24 04:31:48 -0800 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-24 04:31:48 -0800 |
commit | f5339906ef282075fef996364ca7da215f5807f6 (patch) | |
tree | 7cfaf9477c23d5165a2cd433a0a8db61498ceb6e | |
parent | Since we do not write raw anymore, we do not know that the gitosis section is... (diff) | |
download | gitosis-dakkar-f5339906ef282075fef996364ca7da215f5807f6.tar.gz gitosis-dakkar-f5339906ef282075fef996364ca7da215f5807f6.tar.bz2 gitosis-dakkar-f5339906ef282075fef996364ca7da215f5807f6.zip |
Use an already existing config file is passed to gitosis-init.
-rw-r--r-- | gitosis/init.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/gitosis/init.py b/gitosis/init.py index 2004ddd..0162be4 100644 --- a/gitosis/init.py +++ b/gitosis/init.py @@ -55,7 +55,7 @@ def symlink_config(git_dir): #pragma: no cover ) os.rename(tmp, dst) -def init_admin_repository(git_dir, pubkey, user): +def init_admin_repository(git_dir, pubkey, user, config): """Create the initial gitosis-admin reposistory.""" repository.init( path=git_dir, @@ -64,18 +64,22 @@ def init_admin_repository(git_dir, pubkey, user): repository.init( path=git_dir, ) + if config.has_section('gitosis') and \ + config.has_section('group gitosis-admin') and \ + config.has_option('group gitosis-admin', 'writable'): + pass + else: + config = RawConfigParser() + config.add_section('gitosis') + config.add_section('group gitosis-admin') + config.set('group gitosis-admin', 'members', user) + config.set('group gitosis-admin', 'writable', 'gitosis-admin') if not repository.has_initial_commit(git_dir): log.info('Making initial commit...') # ConfigParser does not guarantee order, so jump through hoops # to make sure [gitosis] is first cfg_file = StringIO() - print >> cfg_file, '[gitosis]' - print >> cfg_file - cfg = RawConfigParser() - cfg.add_section('group gitosis-admin') - cfg.set('group gitosis-admin', 'members', user) - cfg.set('group gitosis-admin', 'writable', 'gitosis-admin') - cfg.write(cfg_file) + config.write(cfg_file) initial_commit( git_dir=git_dir, cfg=cfg_file.getvalue(), @@ -146,6 +150,7 @@ class Main(app.App): git_dir=admin_repository, pubkey=pubkey, user=user, + config=cfg, ) log.info('Running post-update hook...') util.mkdir(os.path.expanduser('~/.ssh'), 0700) |