Mercurial > public > src > rhodecode
diff pylons_app/lib/utils.py @ 265:0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 07 Jun 2010 00:18:33 +0200 |
parents | 3782a6d698af |
children | cd2ee462fc2c |
line wrap: on
line diff
--- a/pylons_app/lib/utils.py Sun Jun 06 23:35:21 2010 +0200 +++ b/pylons_app/lib/utils.py Mon Jun 07 00:18:33 2010 +0200 @@ -28,6 +28,7 @@ import logging from mercurial import ui, config, hg from mercurial.error import RepoError +from pylons_app.model.db import Repository, User log = logging.getLogger(__name__) @@ -152,9 +153,28 @@ return '0' * 12 -def repo2db_mapper(): +def repo2db_mapper(initial_repo_list): + """ + maps all found repositories into db """ - scann all dirs for .hgdbid - if some dir doesn't have one generate one. - """ - pass + from pylons_app.model.meta import Session + sa = Session() + user = sa.query(User).filter(User.admin == True).first() + for name, repo in initial_repo_list.items(): + if not sa.query(Repository).get(name): + log.info('%s not found creating default', name) + try: + + new_repo = Repository() + new_repo.repo_name = name + desc = repo.description if repo.description != 'unknown' else \ + 'auto description for %s' % name + new_repo.description = desc + new_repo.user_id = user.user_id + new_repo.private = False + sa.add(new_repo) + sa.commit() + except: + sa.rollback() + raise +