diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-10-21 12:50:07 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-10-31 09:09:07 +0000 |
commit | 562f9ee674a8b392437096422b9cceab9c3cba2e (patch) | |
tree | de81b9be5cd0db0fcb0512832c539cf439061524 /lib/bb/main.py | |
parent | d02e90db32e7ee341c2ba3be79b0627d8796bdd6 (diff) | |
download | bitbake-contrib-562f9ee674a8b392437096422b9cceab9c3cba2e.tar.gz |
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>
Diffstat (limited to 'lib/bb/main.py')
-rwxr-xr-x | lib/bb/main.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/bb/main.py b/lib/bb/main.py index a488c3d18..7711b290d 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) |