aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2007-12-24 05:11:56 -0800
committerRobin H. Johnson <robbat2@gentoo.org>2007-12-24 05:11:56 -0800
commit03d38ff9953e394d0ed48abc852f3dd0245c0e77 (patch)
tree4447621ae2b70778dc9231f26ade3c5199544c0f
parentAdd utility function for default access to config. (diff)
downloadgitosis-dakkar-03d38ff9953e394d0ed48abc852f3dd0245c0e77.tar.gz
gitosis-dakkar-03d38ff9953e394d0ed48abc852f3dd0245c0e77.tar.bz2
gitosis-dakkar-03d38ff9953e394d0ed48abc852f3dd0245c0e77.zip
Improve default config stuff.
-rw-r--r--gitosis/init.py18
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