diff options
author | Tommi Virtanen <tv@eagain.net> | 2007-09-03 21:16:15 -0700 |
---|---|---|
committer | Tommi Virtanen <tv@eagain.net> | 2007-09-03 21:16:15 -0700 |
commit | 1f3924e2cb86081a5d8a6292c895f15a2664d0da (patch) | |
tree | 4a658f8db30b4423ca7dc6318870dd021968ac31 /gitosis/run_hook.py | |
parent | Make gitosis-init ignore error from non-existent config file. (diff) | |
download | gitosis-dakkar-1f3924e2cb86081a5d8a6292c895f15a2664d0da.tar.gz gitosis-dakkar-1f3924e2cb86081a5d8a6292c895f15a2664d0da.tar.bz2 gitosis-dakkar-1f3924e2cb86081a5d8a6292c895f15a2664d0da.zip |
Make gitosis-init call run_hook.post_update directly.
This avoids complexity where failing to read the config file in
gitosis-run-hook is non-fatal, but only on the first run. gitosis-init
will take care of config file reading and just pass a RawConfigParser
instance to run_hook.post_update.
Diffstat (limited to 'gitosis/run_hook.py')
-rw-r--r-- | gitosis/run_hook.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/gitosis/run_hook.py b/gitosis/run_hook.py index de5076e..d249db1 100644 --- a/gitosis/run_hook.py +++ b/gitosis/run_hook.py @@ -13,20 +13,27 @@ from gitosis import ssh from gitosis import gitweb from gitosis import app -def post_update(cfg): +def post_update(cfg, git_dir): + export = os.path.join(git_dir, 'gitosis-export') try: - shutil.rmtree('gitosis-export') + shutil.rmtree(export) except OSError, e: if e.errno == errno.ENOENT: pass else: raise - repository.export(git_dir='.', path='gitosis-export') - os.rename('gitosis-export/gitosis.conf', 'gitosis.conf') - gitweb.generate(config=cfg, path='projects.list') + repository.export(git_dir=git_dir, path=export) + os.rename( + os.path.join(export, 'gitosis.conf'), + os.path.join(export, '..', 'gitosis.conf'), + ) + gitweb.generate( + config=cfg, + path=os.path.join(git_dir, 'projects.list'), + ) ssh.writeAuthorizedKeys( path=os.path.expanduser('~/.ssh/authorized_keys'), - keydir='gitosis-export/keydir', + keydir=os.path.join(export, 'keydir'), ) class Main(app.App): @@ -50,12 +57,10 @@ class Main(app.App): if git_dir is None: log.error('Must have GIT_DIR set in enviroment') sys.exit(1) - os.chdir(git_dir) - os.environ['GIT_DIR'] = '.' if hook == 'post-update': log.info('Running hook %s', hook) - post_update(cfg) + post_update(cfg, git_dir) log.info('Done.') else: log.warning('Ignoring unknown hook: %r', hook) |