aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@orbis-terrarum.net>2009-12-01 16:46:44 -0800
committerRobin H. Johnson <robbat2@orbis-terrarum.net>2009-12-01 17:10:12 -0800
commita88bc14fe0b5507ea54c5d5fe695e828beefd7ca (patch)
treec5808666e46bedace23f4bd5f4d4b172567f7764
parentInclude my details in the setup.py. (diff)
downloadgitosis-gentoo-a88bc14fe0b5507ea54c5d5fe695e828beefd7ca.tar.gz
gitosis-gentoo-a88bc14fe0b5507ea54c5d5fe695e828beefd7ca.tar.bz2
gitosis-gentoo-a88bc14fe0b5507ea54c5d5fe695e828beefd7ca.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.py22
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.')