diff options
author | Robin H. Johnson <robbat2@orbis-terrarum.net> | 2009-12-01 16:46:44 -0800 |
---|---|---|
committer | Robin H. Johnson <robbat2@orbis-terrarum.net> | 2009-12-01 17:10:12 -0800 |
commit | a88bc14fe0b5507ea54c5d5fe695e828beefd7ca (patch) | |
tree | c5808666e46bedace23f4bd5f4d4b172567f7764 | |
parent | Include my details in the setup.py. (diff) | |
download | gitosis-gentoo-0.2_p20100718.tar.gz gitosis-gentoo-0.2_p20100718.tar.bz2 gitosis-gentoo-0.2_p20100718.zip |
Environment info about the user doing the push.0.2_p20100718
Provide GITOSIS_NAME and GITOSIS_EMAIL that we can fetch from the
keyfile for each user.
Written-by: Alex Alexander <wired@gentoo.org>
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-rw-r--r-- | gitosis/serve.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gitosis/serve.py b/gitosis/serve.py index 2ba8a75..26bda1f 100644 --- a/gitosis/serve.py +++ b/gitosis/serve.py @@ -200,6 +200,28 @@ class Main(app.App): main_log = logging.getLogger('gitosis.serve.main') os.umask(0022) + os.environ['GITOSIS_USER'] = user + + userfile=os.path.join(util.getRepositoryDir(cfg),'gitosis-admin.git','gitosis-export','keydir',user+'.pub') + try: + userdata=open(userfile, 'r').readline() + except: + # don't fail if file is not found + userdata="" + + if len(userdata) > 0: + m=re.search("^# gitosis-identity: *([^\<]+)? *(?:\<([^\>, ]*)\>)?",userdata) + if m: + os.environ['GITOSIS_NAME'] = m.group(1).strip() + os.environ['GITOSIS_EMAIL'] = m.group(2) + else: + m.search("^# gitosis-name: *(.*)$", userdata) + if m: + os.environ['GITOSIS_NAME'] = m.group(1).strip() + m.search("^# gitosis-email: *<?(.*)>?$", userdata) + if m: + os.environ['GITOSIS_EMAIL'] = m.group(1).strip() + cmd = os.environ.get('SSH_ORIGINAL_COMMAND', None) if cmd is None: main_log.error('Need SSH_ORIGINAL_COMMAND in environment.') |