binman: Allow use of help and entry-docs without libfdt
At present if libfdt is not available binman can't do anything much.
Improve the situation a little.
Ideally there should be a test to cover this, but I'm not quite sure how
to fake this.
Signed-off-by: Simon Glass <sjg@chromium.org>
(fixed up missing ReadChildData() enty test)
diff --git a/tools/binman/control.py b/tools/binman/control.py
index cb51bc2..8268eda 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -15,8 +15,6 @@
import cbfs_util
import command
import elf
-from image import Image
-import state
import tout
# List of images we plan to create
@@ -113,6 +111,9 @@
Returns:
data extracted from the entry
"""
+ global Image
+ from image import Image
+
image = Image.FromFile(image_fname)
entry = image.FindEntryPath(entry_path)
return entry.ReadData(decomp)
@@ -459,6 +460,9 @@
Args:
args: Command line arguments Namespace object
"""
+ global Image
+ global state
+
if args.full_help:
pager = os.getenv('PAGER')
if not pager:
@@ -468,6 +472,10 @@
command.Run(pager, fname)
return 0
+ # Put these here so that we can import this module without libfdt
+ from image import Image
+ import state
+
if args.cmd in ['ls', 'extract', 'replace']:
try:
tout.Init(args.verbosity)