##// END OF EJS Templates
config: allow including other config files
Matt Mackall -
r8183:2858ab75 default
parent child Browse files
Show More
@@ -1,5 +1,5 b''
1 from i18n import _
1 from i18n import _
2 import re, error
2 import re, error, os
3
3
4 class sortdict(dict):
4 class sortdict(dict):
5 'a simple append-only sorted dictionary'
5 'a simple append-only sorted dictionary'
@@ -62,6 +62,7 b' class config:'
62 itemre = re.compile(r'([^=\s]+)\s*=\s*(.*)')
62 itemre = re.compile(r'([^=\s]+)\s*=\s*(.*)')
63 contre = re.compile(r'\s+(\S.*)')
63 contre = re.compile(r'\s+(\S.*)')
64 emptyre = re.compile(r'(;|#|\s*$)')
64 emptyre = re.compile(r'(;|#|\s*$)')
65 includere = re.compile(r'%include\s+(\S.*)')
65 section = ""
66 section = ""
66 item = None
67 item = None
67 line = 0
68 line = 0
@@ -79,6 +80,14 b' class config:'
79 self.set(section, item, v, "%s:%d" % (path, line))
80 self.set(section, item, v, "%s:%d" % (path, line))
80 continue
81 continue
81 item = None
82 item = None
83 m = includere.match(l)
84 if m:
85 inc = m.group(1)
86 base = os.path.dirname(path)
87 inc = os.path.normpath(os.path.join(base, inc))
88 incfp = open(inc)
89 self.read(inc, incfp)
90 continue
82 if emptyre.match(l):
91 if emptyre.match(l):
83 continue
92 continue
84 m = sectionre.match(l)
93 m = sectionre.match(l)
General Comments 0
You need to be logged in to leave comments. Login now