From eb2147aa8facd4ef33a0749e9ae660ec686dad48 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 27 Apr 2015 10:53:21 +0100 Subject: devtool: update-recipe: check if source tree is a git repository If you've done "devtool add" (or "devtool modify" without -x) then it's possible that the external source tree is not a git repository, so we should handle that case here instead of printing a traceback. Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/lib/devtool/standard.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index a64211211b..94b5e0bdd1 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -477,13 +477,19 @@ def update_recipe(args, config, basepath, workspace): return updated srctree = workspace[args.recipename] - if mode == 'srcrev': + + # Get HEAD revision + try: (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) - srcrev = stdout.strip() - if len(srcrev) != 40: - logger.error('Invalid hash returned by git: %s' % stdout) - return 1 + except bb.process.ExecutionError as err: + print('Failed to get HEAD revision in %s: %s' % (srctree, err)) + return 1 + srcrev = stdout.strip() + if len(srcrev) != 40: + logger.error('Invalid hash returned by git: %s' % stdout) + return 1 + if mode == 'srcrev': logger.info('Updating SRCREV in recipe %s' % os.path.basename(recipefile)) patchfields = {} patchfields['SRCREV'] = srcrev -- cgit 1.2.3-korg