From 03d38ff9953e394d0ed48abc852f3dd0245c0e77 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Mon, 24 Dec 2007 05:11:56 -0800 Subject: Improve default config stuff. --- gitosis/init.py | 18 +++++++++++------- 1 file 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 -- cgit v1.2.3