comparison pylons_app/controllers/hg.py @ 6:2620dac853ad

added autoconfig loading
author Marcin Kuzminski
date Thu, 18 Feb 2010 14:51:26 +0100
parents ad0dd3904225
children 3092016c6d0c
comparison
equal deleted inserted replaced
5:ad0dd3904225 6:2620dac853ad
12 from mercurial.hgweb.request import wsgiapplication 12 from mercurial.hgweb.request import wsgiapplication
13 log = logging.getLogger(__name__) 13 log = logging.getLogger(__name__)
14 14
15 from mercurial import ui, hg 15 from mercurial import ui, hg
16 from mercurial.error import RepoError 16 from mercurial.error import RepoError
17 17 from ConfigParser import ConfigParser
18 #http://bel-epa.com/hg/ 18 #http://bel-epa.com/hg/
19 #def make_web_app(): 19 #def make_web_app():
20 # repos = "hgwebdir.config" 20 # repos = "hgwebdir.config"
21 # hgwebapp = hgwebdir(repos) 21 # hgwebapp = hgwebdir(repos)
22 # return hgwebapp 22 # return hgwebapp
44 return ['<html>\n<body>\nHello World!\n</body>\n</html>'] 44 return ['<html>\n<body>\nHello World!\n</body>\n</html>']
45 45
46 class HgController(BaseController): 46 class HgController(BaseController):
47 47
48 def _check_repo(self, repo_name): 48 def _check_repo(self, repo_name):
49 repos_path = '/home/marcink/python_workspace' 49
50 p = os.path.dirname(__file__)
51 config_path = os.path.join(p, '../..', 'hgwebdir.config')
52 print config_path
53
54 cp = ConfigParser()
55
56 cp.read(config_path)
57 repos_path = cp.get('paths', '/').replace("**", '')
58
59 if not repos_path:
60 raise Exception('Could not read config !')
61
50 self.repo_path = os.path.join(repos_path, repo_name) 62 self.repo_path = os.path.join(repos_path, repo_name)
51 63
52 try: 64 try:
53 r = hg.repository(ui.ui(), self.repo_path) 65 r = hg.repository(ui.ui(), self.repo_path)
54 hg.verify(r) 66 hg.verify(r)
64 def _create_repo(self, repo_name): 76 def _create_repo(self, repo_name):
65 if repo_name in [None, '', 'add']: 77 if repo_name in [None, '', 'add']:
66 raise Exception('undefined repo_name of repo') 78 raise Exception('undefined repo_name of repo')
67 79
68 if self._check_repo(repo_name): 80 if self._check_repo(repo_name):
69 log.info('creating repo %s', repo_name) 81 log.info('creating repo %s in %s', repo_name, self.repo_path)
70 cmd = """mkdir %s && hg init %s""" \ 82 cmd = """mkdir %s && hg init %s""" \
71 % (self.repo_path, self.repo_path) 83 % (self.repo_path, self.repo_path)
72 os.popen(cmd) 84 os.popen(cmd)
73 85
74 86