aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-10-21 12:50:07 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-10-31 09:09:07 +0000
commit562f9ee674a8b392437096422b9cceab9c3cba2e (patch)
treede81b9be5cd0db0fcb0512832c539cf439061524
parentd02e90db32e7ee341c2ba3be79b0627d8796bdd6 (diff)
downloadbitbake-562f9ee674a8b392437096422b9cceab9c3cba2e.zip
bitbake-562f9ee674a8b392437096422b9cceab9c3cba2e.tar.gz
bitbake-562f9ee674a8b392437096422b9cceab9c3cba2e.tar.bz2
main: Give a user readable error if we can't locate topdir
Currently if you run bitbake in an invalid directory, the user experience is poor: birbake/lib/bb/main.py", line 427, in setup_bitbake topdir, lock = lockBitbake() File "./bitbake/lib/bb/main.py", line 494, in lockBitbake lockfile = topdir + "/bitbake.lock" TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' This ensures we exit straight away with a better error message. [YOCTO #12163] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xlib/bb/main.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/bb/main.py b/lib/bb/main.py
index a488c3d..7711b29 100755
--- a/lib/bb/main.py
+++ b/lib/bb/main.py
@@ -47,6 +47,9 @@ logger = logging.getLogger("BitBake")
class BBMainException(Exception):
pass
+class BBMainFatal(bb.BBHandledException):
+ pass
+
def present_options(optionlist):
if len(optionlist) > 1:
return ' or '.join([', '.join(optionlist[:-1]), optionlist[-1]])
@@ -461,6 +464,8 @@ def setup_bitbake(configParams, configuration, extrafeatures=None):
if server_connection or configParams.server_only:
break
+ except BBMainFatal:
+ raise
except (Exception, bb.server.process.ProcessTimeout) as e:
if not retries:
raise
@@ -491,6 +496,9 @@ def setup_bitbake(configParams, configuration, extrafeatures=None):
def lockBitbake():
topdir = bb.cookerdata.findTopdir()
+ if not topdir:
+ bb.error("Unable to find conf/bblayers.conf or conf/bitbake.conf. BBAPTH is unset and/or not in a build directory?")
+ raise BBMainFatal
lockfile = topdir + "/bitbake.lock"
return topdir, bb.utils.lockfile(lockfile, False, False)