comparison 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
comparison
equal deleted inserted replaced
264:0d68a749db33 265:0e5455fda8fd
26 26
27 import os 27 import os
28 import logging 28 import logging
29 from mercurial import ui, config, hg 29 from mercurial import ui, config, hg
30 from mercurial.error import RepoError 30 from mercurial.error import RepoError
31 from pylons_app.model.db import Repository, User
31 log = logging.getLogger(__name__) 32 log = logging.getLogger(__name__)
32 33
33 34
34 def get_repo_slug(request): 35 def get_repo_slug(request):
35 return request.environ['pylons.routes_dict'].get('repo_name') 36 return request.environ['pylons.routes_dict'].get('repo_name')
150 representation. 151 representation.
151 """ 152 """
152 return '0' * 12 153 return '0' * 12
153 154
154 155
155 def repo2db_mapper(): 156 def repo2db_mapper(initial_repo_list):
156 """ 157 """
157 scann all dirs for .hgdbid 158 maps all found repositories into db
158 if some dir doesn't have one generate one.
159 """ 159 """
160 pass 160 from pylons_app.model.meta import Session
161 sa = Session()
162 user = sa.query(User).filter(User.admin == True).first()
163 for name, repo in initial_repo_list.items():
164 if not sa.query(Repository).get(name):
165 log.info('%s not found creating default', name)
166 try:
167
168 new_repo = Repository()
169 new_repo.repo_name = name
170 desc = repo.description if repo.description != 'unknown' else \
171 'auto description for %s' % name
172 new_repo.description = desc
173 new_repo.user_id = user.user_id
174 new_repo.private = False
175 sa.add(new_repo)
176 sa.commit()
177 except:
178 sa.rollback()
179 raise
180