示例#1
0
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'),
    )
示例#2
0
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,
	)
示例#3
0
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,
    )
示例#4
0
        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')
示例#5
0
        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:
示例#6
0
def regenerate_keys(cfg):
    authorized_keys = util.getSSHAuthorizedKeysPath(config=cfg)
    ssh.writeAuthorizedKeys(
        path=authorized_keys,
        keydir=cfg.get('gitosis', 'keydir'),
        )