summaryrefslogtreecommitdiffstats
path: root/source-builder/sb/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'source-builder/sb/config.py')
-rw-r--r--source-builder/sb/config.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py
index a9724dc..b18a646 100644
--- a/source-builder/sb/config.py
+++ b/source-builder/sb/config.py
@@ -687,6 +687,16 @@ class file:
def load(self, name):
+ def common_end(left, right):
+ end = ''
+ while len(left) and len(right):
+ if left[-1] != right[-1]:
+ return end
+ end = left[-1] + end
+ left = left[:-1]
+ right = right[:-1]
+ return end
+
if self.load_depth == 0:
self.in_error = False
self.lc = 0
@@ -707,7 +717,7 @@ class file:
self.lc = 0
#
- # Locate the config file. Expand any macors then Add the
+ # Locate the config file. Expand any macros then add the
# extension. Check if the file exists, therefore directly
# referenced. If not see if the file contains ':' or the path
# separator. If it does split the path else use the standard config dir
@@ -716,12 +726,19 @@ class file:
exname = self.expand(name)
+ #
+ # Macro could add an extension.
+ #
if exname.endswith('.cfg'):
configname = exname
else:
configname = '%s.cfg' % (exname)
+ name = '%s.cfg' % (name)
- cfgname = path.basename(configname)
+ if ':' in configname:
+ cfgname = path.basename(configname)
+ else:
+ cfgname = common_end(configname, name)
if not path.exists(configname):
if ':' in configname:
@@ -730,6 +747,7 @@ class file:
configdirs = self.define('_configdir').split(':')
for cp in configdirs:
configname = path.join(path.abspath(cp), cfgname)
+ print configname
if path.exists(configname):
break
configname = None