summaryrefslogtreecommitdiff
path: root/bitbake/lib
diff options
context:
space:
mode:
authorHolger Freyther <ich@tamarin.(none)>2009-05-19 13:59:50 +0200
committerRichard Purdie <rpurdie@linux.intel.com>2010-02-15 17:07:55 +0000
commit7b57ad901af2ded02995d22718ec6f280a9edd7f (patch)
tree81b9b3909460269bdd60744a255ac923775fa71c /bitbake/lib
parent83ec5eaed411225d16a4fc4dc92323e3acc9f5cd (diff)
downloadopenembedded-core-7b57ad901af2ded02995d22718ec6f280a9edd7f.tar.gz
openembedded-core-7b57ad901af2ded02995d22718ec6f280a9edd7f.tar.bz2
openembedded-core-7b57ad901af2ded02995d22718ec6f280a9edd7f.zip
bitbake: [parser] Make resolve_file only resolve the path
Do not attempt to open the file in the resolve_file method (a lot like bb.which... maybe bb.which can be used). This way we don't need to open/close a file which we have already parsed. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/parse/__init__.py18
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py7
-rw-r--r--bitbake/lib/bb/parse/parse_py/ConfHandler.py3
3 files changed, 12 insertions, 16 deletions
diff --git a/bitbake/lib/bb/parse/__init__.py b/bitbake/lib/bb/parse/__init__.py
index 6737e061ea..5e74afd9ac 100644
--- a/bitbake/lib/bb/parse/__init__.py
+++ b/bitbake/lib/bb/parse/__init__.py
@@ -82,22 +82,16 @@ def init(fn, data):
def resolve_file(fn, d):
if not os.path.isabs(fn):
- f = None
bbpath = (bb.data.getVar('BBPATH', d, 1) or '').split(':')
for p in bbpath:
j = os.path.join(p, fn)
if os.access(j, os.R_OK):
- abs_fn = j
- f = open(j, 'r')
- break
- if f is None:
- raise IOError("file %s not found" % fn)
- else:
- f = open(fn,'r')
- abs_fn = fn
-
- bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % abs_fn)
- return (f, abs_fn)
+ bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % j)
+ return j
+ raise IOError("file %s not found" % fn)
+
+ bb.msg.debug(2, bb.msg.domain.Parsing, "LOAD %s" % fn)
+ return fn
# Used by OpenEmbedded metadata
__pkgsplit_cache__={}
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py
index ab479c1eb2..1ba81886a7 100644
--- a/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -80,12 +80,13 @@ def inherit(files, d):
include(fn, file, d, "inherit")
__inherit_cache = data.getVar('__inherit_cache', d) or []
-def get_statements(filename, absolsute_filename, base_name, file):
+def get_statements(filename, absolsute_filename, base_name):
global cached_statements
try:
return cached_statements[absolsute_filename]
except KeyError:
+ file = open(absolsute_filename, 'r')
statements = ast.StatementGroup()
lineno = 0
@@ -133,13 +134,13 @@ def handle(fn, d, include):
else:
oldfile = None
- (f, abs_fn) = resolve_file(fn, d)
+ abs_fn = resolve_file(fn, d)
if include:
bb.parse.mark_dependency(d, abs_fn)
# actual loading
- statements = get_statements(fn, abs_fn, base_name, f)
+ statements = get_statements(fn, abs_fn, base_name)
# DONE WITH PARSING... time to evaluate
if ext != ".bbclass":
diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 839a662024..deafd6479f 100644
--- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -84,7 +84,8 @@ def handle(fn, data, include):
else:
oldfile = bb.data.getVar('FILE', data)
- (f, abs_fn) = resolve_file(fn, data)
+ abs_fn = resolve_file(fn, data)
+ f = open(abs_fn, 'r')
if include:
bb.parse.mark_dependency(data, abs_fn)