##// END OF EJS Templates
config: register the 'devel.serverexactprotocol' config
marmoute -
r33165:f15850ef default
parent child Browse files
Show More
@@ -1,88 +1,91 b''
1 # configitems.py - centralized declaration of configuration option
1 # configitems.py - centralized declaration of configuration option
2 #
2 #
3 # Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net>
3 # Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net>
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from __future__ import absolute_import
8 from __future__ import absolute_import
9
9
10 import functools
10 import functools
11
11
12 from . import (
12 from . import (
13 error,
13 error,
14 )
14 )
15
15
16 def loadconfigtable(ui, extname, configtable):
16 def loadconfigtable(ui, extname, configtable):
17 """update config item known to the ui with the extension ones"""
17 """update config item known to the ui with the extension ones"""
18 for section, items in configtable.items():
18 for section, items in configtable.items():
19 knownitems = ui._knownconfig.setdefault(section, {})
19 knownitems = ui._knownconfig.setdefault(section, {})
20 knownkeys = set(knownitems)
20 knownkeys = set(knownitems)
21 newkeys = set(items)
21 newkeys = set(items)
22 for key in sorted(knownkeys & newkeys):
22 for key in sorted(knownkeys & newkeys):
23 msg = "extension '%s' overwrite config item '%s.%s'"
23 msg = "extension '%s' overwrite config item '%s.%s'"
24 msg %= (extname, section, key)
24 msg %= (extname, section, key)
25 ui.develwarn(msg, config='warn-config')
25 ui.develwarn(msg, config='warn-config')
26
26
27 knownitems.update(items)
27 knownitems.update(items)
28
28
29 class configitem(object):
29 class configitem(object):
30 """represent a known config item
30 """represent a known config item
31
31
32 :section: the official config section where to find this item,
32 :section: the official config section where to find this item,
33 :name: the official name within the section,
33 :name: the official name within the section,
34 :default: default value for this item,
34 :default: default value for this item,
35 """
35 """
36
36
37 def __init__(self, section, name, default=None):
37 def __init__(self, section, name, default=None):
38 self.section = section
38 self.section = section
39 self.name = name
39 self.name = name
40 self.default = default
40 self.default = default
41
41
42 coreitems = {}
42 coreitems = {}
43
43
44 def _register(configtable, *args, **kwargs):
44 def _register(configtable, *args, **kwargs):
45 item = configitem(*args, **kwargs)
45 item = configitem(*args, **kwargs)
46 section = configtable.setdefault(item.section, {})
46 section = configtable.setdefault(item.section, {})
47 if item.name in section:
47 if item.name in section:
48 msg = "duplicated config item registration for '%s.%s'"
48 msg = "duplicated config item registration for '%s.%s'"
49 raise error.ProgrammingError(msg % (item.section, item.name))
49 raise error.ProgrammingError(msg % (item.section, item.name))
50 section[item.name] = item
50 section[item.name] = item
51
51
52 # Registering actual config items
52 # Registering actual config items
53
53
54 def getitemregister(configtable):
54 def getitemregister(configtable):
55 return functools.partial(_register, configtable)
55 return functools.partial(_register, configtable)
56
56
57 coreconfigitem = getitemregister(coreitems)
57 coreconfigitem = getitemregister(coreitems)
58
58
59 coreconfigitem('devel', 'all-warnings',
59 coreconfigitem('devel', 'all-warnings',
60 default=False,
60 default=False,
61 )
61 )
62 coreconfigitem('devel', 'bundle2.debug',
62 coreconfigitem('devel', 'bundle2.debug',
63 default=False,
63 default=False,
64 )
64 )
65 coreconfigitem('devel', 'check-locks',
65 coreconfigitem('devel', 'check-locks',
66 default=False,
66 default=False,
67 )
67 )
68 coreconfigitem('devel', 'check-relroot',
68 coreconfigitem('devel', 'check-relroot',
69 default=False,
69 default=False,
70 )
70 )
71 coreconfigitem('devel', 'disableloaddefaultcerts',
71 coreconfigitem('devel', 'disableloaddefaultcerts',
72 default=False,
72 default=False,
73 )
73 )
74 coreconfigitem('devel', 'servercafile',
74 coreconfigitem('devel', 'servercafile',
75 default='',
75 default='',
76 )
76 )
77 coreconfigitem('devel', 'serverexactprotocol',
78 default='',
79 )
77 coreconfigitem('patch', 'fuzz',
80 coreconfigitem('patch', 'fuzz',
78 default=2,
81 default=2,
79 )
82 )
80 coreconfigitem('ui', 'clonebundleprefers',
83 coreconfigitem('ui', 'clonebundleprefers',
81 default=list,
84 default=list,
82 )
85 )
83 coreconfigitem('ui', 'interactive',
86 coreconfigitem('ui', 'interactive',
84 default=None,
87 default=None,
85 )
88 )
86 coreconfigitem('ui', 'quiet',
89 coreconfigitem('ui', 'quiet',
87 default=False,
90 default=False,
88 )
91 )
General Comments 0
You need to be logged in to leave comments. Login now