diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-24 05:11:56 -0800 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2007-12-24 05:11:56 -0800 |
commit | 03d38ff9953e394d0ed48abc852f3dd0245c0e77 (patch) | |
tree | 4447621ae2b70778dc9231f26ade3c5199544c0f | |
parent | Add utility function for default access to config. (diff) | |
download | gitosis-dakkar-03d38ff9953e394d0ed48abc852f3dd0245c0e77.tar.gz gitosis-dakkar-03d38ff9953e394d0ed48abc852f3dd0245c0e77.tar.bz2 gitosis-dakkar-03d38ff9953e394d0ed48abc852f3dd0245c0e77.zip |
Improve default config stuff.
-rw-r--r-- | gitosis/init.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gitosis/init.py b/gitosis/init.py index 91b9f18..373f57f 100644 --- a/gitosis/init.py +++ b/gitosis/init.py @@ -64,16 +64,20 @@ def init_admin_repository(git_dir, pubkey, user, config): 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 = configutil.GitosisRawConfigParser() + # Check that the config meets the min requirements + if not config.has_section('gitosis'): config.add_section('gitosis') + if not config.has_section('group gitosis-admin'): config.add_section('group gitosis-admin') - config.set('group gitosis-admin', 'members', user) + if not config.has_option('group gitosis-admin', 'writable'): config.set('group gitosis-admin', 'writable', 'gitosis-admin') + + # Make sure the admin user is in the admin list, else they will lock themselves out! + adminlist = configutil.get_default(config, 'group gitosis-admin', 'members',' ').split() + if user not in adminlist: + adminlist.append(user) + config.set('group gitosis-admin', 'members', ' '.join(adminlist)) + if not repository.has_initial_commit(git_dir): log.info('Making initial commit...') # ConfigParser does not guarantee order, so jump through hoops |