summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Freyther <ich@tamarin.(none)>2009-05-17 06:19:39 +0200
committerRichard Purdie <rpurdie@linux.intel.com>2010-02-10 16:31:33 +0000
commit913e78898e65e1d95c6313e86854cdc2ab9e35aa (patch)
tree4ca35dd670b79167b8bdaec9cab1b80e11d1719c
parent242a03607d752c228e909a65bf4dfbe8661d5355 (diff)
downloadopenembedded-core-913e78898e65e1d95c6313e86854cdc2ab9e35aa.tar.gz
openembedded-core-913e78898e65e1d95c6313e86854cdc2ab9e35aa.tar.bz2
openembedded-core-913e78898e65e1d95c6313e86854cdc2ab9e35aa.zip
bitbake: [parse] Unify opening a file...
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--bitbake/lib/bb/parse/__init__.py19
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py18
-rw-r--r--bitbake/lib/bb/parse/parse_py/ConfHandler.py23
3 files changed, 23 insertions, 37 deletions
diff --git a/bitbake/lib/bb/parse/__init__.py b/bitbake/lib/bb/parse/__init__.py
index 5dd96c4136..c6a925c7a8 100644
--- a/bitbake/lib/bb/parse/__init__.py
+++ b/bitbake/lib/bb/parse/__init__.py
@@ -80,5 +80,24 @@ def init(fn, data):
if h['supports'](fn):
return h['init'](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)
+
from parse_py import __version__, ConfHandler, BBHandler
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py
index 7707705aaf..c6931650da 100644
--- a/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -30,7 +30,7 @@ import bb.fetch, bb.build, bb.utils
from bb import data, fetch, methodpool
from ConfHandler import include, init
-from bb.parse import ParseError
+from bb.parse import ParseError, resolve_file
__func_start_regexp__ = re.compile( r"(((?P<py>python)|(?P<fr>fakeroot))\s*)*(?P<func>[\w\.\-\+\{\}\$]+)?\s*\(\s*\)\s*{$" )
__inherit_regexp__ = re.compile( r"inherit\s+(.+)" )
@@ -145,20 +145,7 @@ def handle(fn, d, include = 0):
else:
oldfile = None
- bbpath = (data.getVar('BBPATH', d, 1) or '').split(':')
- if not os.path.isabs(fn):
- f = None
- 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
+ (f, abs_fn) = resolve_file(fn, d)
if include:
bb.parse.mark_dependency(d, abs_fn)
@@ -203,7 +190,6 @@ def handle(fn, d, include = 0):
darray[cls] = based
return darray
- bbpath.pop(0)
if oldfile:
bb.data.setVar("FILE", oldfile, d)
diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index fcbf6aea15..ce746106a4 100644
--- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -25,7 +25,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import re, bb.data, os, sys
-from bb.parse import ParseError
+from bb.parse import ParseError, resolve_file
#__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}]+)\s*(?P<colon>:)?(?P<ques>\?)?=\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-_+.${}/]+)(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?\s*((?P<colon>:=)|(?P<ques>\?=)|(?P<append>\+=)|(?P<prepend>=\+)|(?P<predot>=\.)|(?P<postdot>\.=)|=)\s*(?P<apo>['\"]?)(?P<value>.*)(?P=apo)$")
@@ -77,10 +77,6 @@ def include(oldfn, fn, data, error_out):
bb.msg.debug(2, bb.msg.domain.Parsing, "CONF file '%s' not found" % fn)
def handle(fn, data, include = 0):
- if include:
- inc_string = "including"
- else:
- inc_string = "reading"
init(data)
if include == 0:
@@ -88,22 +84,7 @@ def handle(fn, data, include = 0):
else:
oldfile = bb.data.getVar('FILE', data)
- if not os.path.isabs(fn):
- f = None
- bbpath = bb.data.getVar("BBPATH", data, 1) or []
- for p in bbpath.split(":"):
- currname = os.path.join(p, fn)
- if os.access(currname, os.R_OK):
- f = open(currname, 'r')
- abs_fn = currname
- bb.msg.debug(2, bb.msg.domain.Parsing, "CONF %s %s" % (inc_string, currname))
- break
- if f is None:
- raise IOError("file '%s' not found" % fn)
- else:
- f = open(fn,'r')
- bb.msg.debug(1, bb.msg.domain.Parsing, "CONF %s %s" % (inc_string,fn))
- abs_fn = fn
+ (f, abs_fn) = resolve_file(fn, data)
if include:
bb.parse.mark_dependency(data, abs_fn)