Mercurial > public > src > rhodecode
comparison pylons_app/controllers/hg.py @ 8:3092016c6d0c
Changed to webapp, removed get from routes,
author | Marcin Kuzminski |
---|---|
date | Thu, 18 Feb 2010 17:36:43 +0100 |
parents | 2620dac853ad |
children | 525ed90e4577 |
comparison
equal
deleted
inserted
replaced
7:8a2ddd2d6b4e | 8:3092016c6d0c |
---|---|
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 from ConfigParser import ConfigParser | 17 from ConfigParser import ConfigParser |
18 #http://bel-epa.com/hg/ | |
19 #def make_web_app(): | |
20 # repos = "hgwebdir.config" | |
21 # hgwebapp = hgwebdir(repos) | |
22 # return hgwebapp | |
23 # | |
24 #class HgController(BaseController): | |
25 # | |
26 # def index(self): | |
27 # hgapp = wsgiapplication(make_web_app) | |
28 # return hgapp(request.environ, self.start_response) | |
29 # | |
30 # def view(self, *args, **kwargs): | |
31 # return u'dupa' | |
32 # #pprint(request.environ) | |
33 # hgapp = wsgiapplication(make_web_app) | |
34 # return hgapp(request.environ, self.start_response) | |
35 | 18 |
36 def _make_app(): | 19 def make_web_app(): |
37 #for single a repo | |
38 #return hgweb("/path/to/repo", "Name") | |
39 repos = "hgwebdir.config" | 20 repos = "hgwebdir.config" |
40 return hgwebdir(repos) | 21 hgwebapp = hgwebdir(repos) |
41 | 22 return hgwebapp |
42 def wsgi_app(environ, start_response): | |
43 start_response('200 OK', [('Content-type', 'text/html')]) | |
44 return ['<html>\n<body>\nHello World!\n</body>\n</html>'] | |
45 | 23 |
46 class HgController(BaseController): | 24 class HgController(BaseController): |
25 #based on | |
26 #http://bel-epa.com/hg/ | |
27 def index(self): | |
28 hgapp = wsgiapplication(make_web_app) | |
29 return hgapp(request.environ, self.start_response) | |
30 | |
31 def view(self, *args, **kwargs): | |
32 hgapp = wsgiapplication(make_web_app) | |
33 return hgapp(request.environ, self.start_response) | |
34 | |
35 def add_repo(self, new_repo): | |
36 tmpl = ''' | |
37 <html> | |
38 <body> | |
39 %(msg)s%(new_repo)s!<br \> | |
40 <a href="/">repos</a> | |
41 </body> | |
42 </html> | |
43 ''' | |
44 #extra check it can be add since it's the command | |
45 if new_repo == 'add': | |
46 return [tmpl % ({'new_repo':'', 'msg':'you basstard ! this repo is a command'})] | |
47 | |
48 new_repo = new_repo.replace(" ", "_") | |
49 new_repo = new_repo.replace("-", "_") | |
50 | |
51 try: | |
52 self._create_repo(new_repo) | |
53 except Exception as e: | |
54 return [tmpl % ({'new_repo':' Exception when adding: ' + new_repo, 'msg':str(e)})] | |
55 | |
56 return [tmpl % ({'new_repo':new_repo, 'msg':'added repo: '})] | |
47 | 57 |
48 def _check_repo(self, repo_name): | 58 def _check_repo(self, repo_name): |
49 | |
50 p = os.path.dirname(__file__) | 59 p = os.path.dirname(__file__) |
51 config_path = os.path.join(p, '../..', 'hgwebdir.config') | 60 config_path = os.path.join(p, '../..', 'hgwebdir.config') |
52 print config_path | 61 print config_path |
53 | 62 |
54 cp = ConfigParser() | 63 cp = ConfigParser() |
81 log.info('creating repo %s in %s', repo_name, self.repo_path) | 90 log.info('creating repo %s in %s', repo_name, self.repo_path) |
82 cmd = """mkdir %s && hg init %s""" \ | 91 cmd = """mkdir %s && hg init %s""" \ |
83 % (self.repo_path, self.repo_path) | 92 % (self.repo_path, self.repo_path) |
84 os.popen(cmd) | 93 os.popen(cmd) |
85 | 94 |
95 #def _make_app(): | |
96 # #for single a repo | |
97 # #return hgweb("/path/to/repo", "Name") | |
98 # repos = "hgwebdir.config" | |
99 # return hgwebdir(repos) | |
100 # | |
86 | 101 |
87 def add_repo(self, new_repo): | 102 # def view(self, environ, start_response): |
88 tmpl = ''' | 103 # #the following is only needed when using hgwebdir |
89 <html> | 104 # app = _make_app() |
90 <body> | 105 # #return wsgi_app(environ, start_response) |
91 %(msg)s%(new_repo)s!<br \> | 106 # response = app(request.environ, self.start_response) |
92 <a href="/">repos</a> | 107 # |
93 </body> | 108 # if environ['PATH_INFO'].find("static") != -1: |
94 </html> | 109 # return response |
95 ''' | 110 # else: |
96 #extra check it can be add since it's the command | 111 # #wrap the murcurial response in a mako template. |
97 if new_repo == 'add': | 112 # template = Template("".join(response), |
98 return [tmpl % ({'new_repo':'', 'msg':'you basstard ! this repo is a command'})] | 113 # lookup = environ['pylons.pylons']\ |
99 | 114 # .config['pylons.g'].mako_lookup) |
100 new_repo = new_repo.replace(" ", "_") | 115 # |
101 new_repo = new_repo.replace("-", "_") | 116 # return template.render(g = g, c = c, session = session, h = h) |
102 | |
103 try: | |
104 self._create_repo(new_repo) | |
105 except Exception as e: | |
106 return [tmpl % ({'new_repo':' Exception when adding: ' + new_repo, 'msg':str(e)})] | |
107 | |
108 return [tmpl % ({'new_repo':new_repo, 'msg':'added repo: '})] | |
109 | |
110 def view(self, environ, start_response): | |
111 #the following is only needed when using hgwebdir | |
112 app = _make_app() | |
113 #return wsgi_app(environ, start_response) | |
114 response = app(request.environ, self.start_response) | |
115 | |
116 if environ['PATH_INFO'].find("static") != -1: | |
117 return response | |
118 else: | |
119 #wrap the murcurial response in a mako template. | |
120 template = Template("".join(response), | |
121 lookup = environ['pylons.pylons']\ | |
122 .config['pylons.g'].mako_lookup) | |
123 | |
124 return template.render(g = g, c = c, session = session, h = h) | |
125 |