##// END OF EJS Templates
updated appglobals, to handle only the baseui config. removed hg app from it
marcink -
r112:f7c403e8 default
parent child Browse files
Show More
@@ -1,13 +1,10 b''
1 """The application's Globals object"""
1 """The application's Globals object"""
2 #uncomment the following if you want to serve a single repo
2 #uncomment the following if you want to serve a single repo
3 #from mercurial.hgweb.hgweb_mod import hgweb
3 #from mercurial.hgweb.hgweb_mod import hgweb
4 from mercurial.hgweb.hgwebdir_mod import hgwebdir
5 from mercurial import templater
6 from mercurial.hgweb.request import wsgiapplication
7 from mercurial import ui, config
8 import os
4 import os
9 from beaker.cache import CacheManager
5 from beaker.cache import CacheManager
10 from beaker.util import parse_cache_config_options
6 from beaker.util import parse_cache_config_options
7 from pylons_app.lib.utils import make_ui
11
8
12 class Globals(object):
9 class Globals(object):
13
10
@@ -23,70 +20,6 b' class Globals(object):'
23
20
24 """
21 """
25 self.cache = CacheManager(**parse_cache_config_options(config))
22 self.cache = CacheManager(**parse_cache_config_options(config))
26 self.baseui = self.make_ui('hgwebdir.config')
23 self.baseui = make_ui('hgwebdir.config')
27
24 self.paths = self.baseui.configitems('paths')
28
29 def make_ui(self, path='hgwebdir.config'):
30 """
31 A funcion that will read python rc files and make an ui from read options
32
33 @param path: path to mercurial config file
34 """
35 #propagated from mercurial documentation
36 sections = [
37 'alias',
38 'auth',
39 'decode/encode',
40 'defaults',
41 'diff',
42 'email',
43 'extensions',
44 'format',
45 'merge-patterns',
46 'merge-tools',
47 'hooks',
48 'http_proxy',
49 'smtp',
50 'patch',
51 'paths',
52 'profiling',
53 'server',
54 'trusted',
55 'ui',
56 'web',
57 ]
58
59 repos = path
60 baseui = ui.ui()
61 cfg = config.config()
62 cfg.read(repos)
63 self.paths = cfg.items('paths')
64 self.base_path = self.paths[0][1].replace('*', '')
25 self.base_path = self.paths[0][1].replace('*', '')
65 self.check_repo_dir(self.paths)
66 self.set_statics(cfg)
67
68 for section in sections:
69 for k, v in cfg.items(section):
70 baseui.setconfig(section, k, v)
71
72 return baseui
73
74 def set_statics(self, cfg):
75 '''
76 set's the statics for use in mako templates
77 @param cfg:
78 '''
79 self.statics = cfg.get('web', 'staticurl', '/static')
80 if not self.statics.endswith('/'):
81 self.statics += '/'
82
83
84 def check_repo_dir(self, paths):
85 repos_path = paths[0][1].split('/')
86 if repos_path[-1] in ['*', '**']:
87 repos_path = repos_path[:-1]
88 if repos_path[0] != '/':
89 repos_path[0] = '/'
90 if not os.path.isdir(os.path.join(*repos_path)):
91 raise Exception('Not a valid repository in %s' % paths[0][1])
92
General Comments 0
You need to be logged in to leave comments. Login now