def post_update(cfg, git_dir): export = os.path.join(git_dir, 'gitosis-export') try: shutil.rmtree(export) except OSError as e: if e.errno == errno.ENOENT: pass else: raise repository.export(git_dir=git_dir, path=export) os.rename( os.path.join(export, 'gitosis.conf'), os.path.join(export, '..', 'gitosis.conf'), ) # re-read config to get up-to-date settings cfg.read(os.path.join(export, '..', 'gitosis.conf')) gitweb.set_descriptions(config=cfg, ) generated = util.getGeneratedFilesDir(config=cfg) gitweb.generate_project_list( config=cfg, path=os.path.join(generated, 'projects.list'), ) gitdaemon.set_export_ok(config=cfg, ) authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg) ssh.writeAuthorizedKeys( path=authorized_keys, keydir=os.path.join(export, 'keydir'), )
def gitosis_sync(gitosis_conf, gitosis_keydir): from gitosis import ssh from gitosis import gitweb from gitosis import gitdaemon from gitosis import util import ConfigParser cfg = ConfigParser.RawConfigParser () cfg.read(gitosis_conf) util.RepositoryDir(cfg, ( gitdaemon.DaemonProp(), gitweb.GitwebProp(), gitweb.DescriptionProp(), gitweb.OwnerProp() )).travel() generated = util.getGeneratedFilesDir(config=cfg) gitweb.ProjectList( os.path.join(generated, 'projects.list') ).refresh() authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg) ssh.writeAuthorizedKeys( path=authorized_keys, keydir=gitosis_keydir, )
def gitosis_sync(gitosis_conf, gitosis_keydir): from gitosis import ssh from gitosis import gitweb from gitosis import gitdaemon from gitosis import util import ConfigParser cfg = ConfigParser.RawConfigParser() cfg.read(gitosis_conf) util.RepositoryDir( cfg, (gitdaemon.DaemonProp(), gitweb.GitwebProp(), gitweb.DescriptionProp(), gitweb.OwnerProp())).travel() generated = util.getGeneratedFilesDir(config=cfg) gitweb.ProjectList(os.path.join(generated, 'projects.list')).refresh() authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg) ssh.writeAuthorizedKeys( path=authorized_keys, keydir=gitosis_keydir, )
config=cfg, ) generated = util.getGeneratedFilesDir(config=cfg) gitweb.generate_project_list( config=cfg, path=os.path.join(generated, 'projects.list'), ) gitdaemon.set_export_ok( config=cfg, ) if htaccess.gen_htaccess_if_enabled(config=cfg): group.generate_group_list( config=cfg, path=os.path.join(generated, 'groups'), ) authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg) ssh.writeAuthorizedKeys( path=authorized_keys, keydir=os.path.join(export, 'keydir'), ) def update_mirrors(cfg, git_dir): mirror.push_mirrors(cfg, git_dir) class Main(app.App): def create_parser(self): parser = super(Main, self).create_parser() parser.set_usage('%prog [OPTS] HOOK') parser.set_description( 'Perform gitosis actions for a git hook')
os.path.join(export, '..', 'gitosis.conf'), ) # re-read config to get up-to-date settings cfg.read(os.path.join(export, '..', 'gitosis.conf')) gitweb.set_descriptions( config=cfg, ) generated = util.getGeneratedFilesDir(config=cfg) gitweb.generate_project_list( config=cfg, path=os.path.join(generated, 'projects.list'), ) gitdaemon.set_export_ok( config=cfg, ) authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg) ssh.writeAuthorizedKeys( path=authorized_keys, keydir=os.path.join(export, 'keydir'), ) class Main(app.App): def create_parser(self): parser = super(Main, self).create_parser() parser.set_usage('%prog [OPTS] HOOK') parser.set_description( 'Perform gitosis actions for a git hook') return parser def handle_args(self, parser, cfg, options, args): try:
def regenerate_keys(cfg): authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg) ssh.writeAuthorizedKeys( path=authorized_keys, keydir=cfg.get('gitosis', 'keydir'), )