diff options
Diffstat (limited to 'trunk/bitbake/bin/bbread')
-rwxr-xr-x | trunk/bitbake/bin/bbread | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/trunk/bitbake/bin/bbread b/trunk/bitbake/bin/bbread new file mode 100755 index 000000000..83b262e6f --- /dev/null +++ b/trunk/bitbake/bin/bbread @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# ex:ts=4:sw=4:sts=4:et +# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- +# +# Copyright (C) 2003, 2004 Chris Larson +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA. + +import sys, copy, os +sys.path.append(os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) +import bb, bb.parse, bb.build, bb.make + +d = bb.data.init() +try: + bb.make.cfg = bb.parse.handle(os.path.join('conf', 'bitbake.conf'), d) +except IOError, e: + bb.fatal("Unable to read conf/bitbake.conf: %s" % e) + +if len(sys.argv) == 2: + bbfile = sys.argv[1] + try: + d, fromCache = bb.make.load_bbfile(bbfile) + except IOError, e: + bb.fatal("Unable to read %s: %s" % (bbfile, e)) + except Exception, e: + bb.fatal("%s" % e) + +# emit variables and shell functions +try: + bb.data.update_data(d) + bb.data.emit_env(sys.__stdout__, d, True) +except bb.build.FuncFailed: + pass +except Exception, e: + bb.fatal("%s" % e) +# emit the metadata which isnt valid shell +for e in d.keys(): + if bb.data.getVarFlag(e, 'python', d): + sys.__stdout__.write("\npython %s () {\n%s}\n" % (e, bb.data.getVar(e, d, 1))) |