comparison pylons_app/lib/middleware/simplehg.py @ 218:58b46f9194c3 v0.7.4

version bump. Made changesets work as should, but vcs had to be fixed for that.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 25 May 2010 00:32:18 +0200
parents a8ea3ce3cdc4
children a0116e944da1
comparison
equal deleted inserted replaced
217:3a1b921ce51c 218:58b46f9194c3
62 self.repo_path = os.path.join(self.basepath, repo_name) 62 self.repo_path = os.path.join(self.basepath, repo_name)
63 try: 63 try:
64 app = wsgiapplication(self.__make_app) 64 app = wsgiapplication(self.__make_app)
65 except Exception as e: 65 except Exception as e:
66 return HTTPNotFound()(environ, start_response) 66 return HTTPNotFound()(environ, start_response)
67
68 action = self.__get_action(environ) 67 action = self.__get_action(environ)
69 #invalidate cache on push 68 #invalidate cache on push
70 if action == 'push': 69 if action == 'push':
71 self.__invalidate_cache(repo_name) 70 self.__invalidate_cache(repo_name)
72 71
73 if action: 72 if action:
74 username = self.__get_environ_user(environ) 73 username = self.__get_environ_user(environ)
75 self.__log_user_action(username, action, repo_name) 74 self.__log_user_action(username, action, repo_name)
75
76 return app(environ, start_response) 76 return app(environ, start_response)
77 77
78 def __make_app(self): 78 def __make_app(self):
79 hgserve = hgweb(self.repo_path) 79 hgserve = hgweb(self.repo_path)
80 return self.load_web_settings(hgserve) 80 return self.__load_web_settings(hgserve)
81 81
82 def __get_environ_user(self, environ): 82 def __get_environ_user(self, environ):
83 return environ.get('REMOTE_USER') 83 return environ.get('REMOTE_USER')
84 84
85 def __get_action(self, environ): 85 def __get_action(self, environ):
123 push requests""" 123 push requests"""
124 invalidate_cache('cached_repo_list') 124 invalidate_cache('cached_repo_list')
125 invalidate_cache('full_changelog', repo_name) 125 invalidate_cache('full_changelog', repo_name)
126 126
127 127
128 def load_web_settings(self, hgserve): 128 def __load_web_settings(self, hgserve):
129 repoui = make_ui(os.path.join(self.repo_path, '.hg', 'hgrc'), False) 129 repoui = make_ui(os.path.join(self.repo_path, '.hg', 'hgrc'), False)
130 #set the global ui for hgserve 130 #set the global ui for hgserve
131 hgserve.repo.ui = self.baseui 131 hgserve.repo.ui = self.baseui
132 132
133 if repoui: 133 if repoui:
134 #set the repository based config 134 #set the repository based config
135 hgserve.repo.ui = repoui 135 hgserve.repo.ui = repoui
136 136
137 return hgserve 137 return hgserve
138
139