summaryrefslogtreecommitdiffstats
path: root/scripts/lib/recipetool
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-08-31 11:54:11 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-08-31 23:30:02 +0100
commite97cd0017bcbaa9ccb065ba5af9ed437d45db079 (patch)
treefa0b2dd6ca0f4de00e051a7073fb42a0886a576e /scripts/lib/recipetool
parent3be475019f5a707e1d899de1384c6e7b84836e28 (diff)
downloadpoky-e97cd0017bcbaa9ccb065ba5af9ed437d45db079.tar.gz
devtool: add: add explicit srcrev/branch options
At the moment when fetching source from a git repository you have to know that you can specify the revision and branch in the URL with ';rev=' and ';branch=' respectively, and you can also get thrown off by the shell splitting on the ; character if you forget to surround the URL in quotes. Add explicit -S/--srcrev and -B/--srcbranch options (consistent with devtool upgrade) to make this easier for the user to discover and use. (The rev and branch URL parameters will continue to work, however.) (From OE-Core rev: 2d86cac853d6daa496c0315a5cb0662ebf1165b0) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/recipetool')
-rw-r--r--scripts/lib/recipetool/create.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 26011451dd..834633610a 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -1,6 +1,6 @@
1# Recipe creation tool - create command plugin 1# Recipe creation tool - create command plugin
2# 2#
3# Copyright (C) 2014-2016 Intel Corporation 3# Copyright (C) 2014-2017 Intel Corporation
4# 4#
5# This program is free software; you can redistribute it and/or modify 5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License version 2 as 6# it under the terms of the GNU General Public License version 2 as
@@ -440,14 +440,30 @@ def create_recipe(args):
440 rev_re = re.compile(';rev=([^;]+)') 440 rev_re = re.compile(';rev=([^;]+)')
441 res = rev_re.search(srcuri) 441 res = rev_re.search(srcuri)
442 if res: 442 if res:
443 if args.srcrev:
444 logger.error('rev= parameter and -S/--srcrev option cannot both be specified - use one or the other')
445 sys.exit(1)
446 if args.autorev:
447 logger.error('rev= parameter and -a/--autorev option cannot both be specified - use one or the other')
448 sys.exit(1)
443 srcrev = res.group(1) 449 srcrev = res.group(1)
444 srcuri = rev_re.sub('', srcuri) 450 srcuri = rev_re.sub('', srcuri)
451 elif args.srcrev:
452 srcrev = args.srcrev
445 453
446 # Check whether users provides any branch info in fetchuri. 454 # Check whether users provides any branch info in fetchuri.
447 # If true, we will skip all branch checking process to honor all user's input. 455 # If true, we will skip all branch checking process to honor all user's input.
448 scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(fetchuri) 456 scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(fetchuri)
449 srcbranch = params.get('branch') 457 srcbranch = params.get('branch')
458 if args.srcbranch:
459 if srcbranch:
460 logger.error('branch= parameter and -B/--srcbranch option cannot both be specified - use one or the other')
461 sys.exit(1)
462 srcbranch = args.srcbranch
450 nobranch = params.get('nobranch') 463 nobranch = params.get('nobranch')
464 if nobranch and srcbranch:
465 logger.error('nobranch= cannot be used if you specify a branch')
466 sys.exit(1)
451 tag = params.get('tag') 467 tag = params.get('tag')
452 if not srcbranch and not nobranch and srcrev != '${AUTOREV}': 468 if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
453 # Append nobranch=1 in the following conditions: 469 # Append nobranch=1 in the following conditions:
@@ -523,7 +539,7 @@ def create_recipe(args):
523 else: 539 else:
524 # If get_branch contains more than one objects, then display error and exit. 540 # If get_branch contains more than one objects, then display error and exit.
525 mbrch = '\n ' + '\n '.join(get_branch) 541 mbrch = '\n ' + '\n '.join(get_branch)
526 logger.error('Revision %s was found on multiple branches: %s\nPlease provide the correct branch in the source URL with ;branch=<branch> (and ensure you use quotes around the URL to avoid the shell interpreting the ";")' % (srcrev, mbrch)) 542 logger.error('Revision %s was found on multiple branches: %s\nPlease provide the correct branch with -B/--srcbranch' % (srcrev, mbrch))
527 sys.exit(1) 543 sys.exit(1)
528 544
529 # Since we might have a value in srcbranch, we need to 545 # Since we might have a value in srcbranch, we need to
@@ -1277,7 +1293,10 @@ def register_commands(subparsers):
1277 parser_create.add_argument('-b', '--binary', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure)', action='store_true') 1293 parser_create.add_argument('-b', '--binary', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure)', action='store_true')
1278 parser_create.add_argument('--also-native', help='Also add native variant (i.e. support building recipe for the build host as well as the target machine)', action='store_true') 1294 parser_create.add_argument('--also-native', help='Also add native variant (i.e. support building recipe for the build host as well as the target machine)', action='store_true')
1279 parser_create.add_argument('--src-subdir', help='Specify subdirectory within source tree to use', metavar='SUBDIR') 1295 parser_create.add_argument('--src-subdir', help='Specify subdirectory within source tree to use', metavar='SUBDIR')
1280 parser_create.add_argument('-a', '--autorev', help='When fetching from a git repository, set SRCREV in the recipe to a floating revision instead of fixed', action="store_true") 1296 group = parser_create.add_mutually_exclusive_group()
1297 group.add_argument('-a', '--autorev', help='When fetching from a git repository, set SRCREV in the recipe to a floating revision instead of fixed', action="store_true")
1298 group.add_argument('-S', '--srcrev', help='Source revision to fetch if fetching from an SCM such as git (default latest)')
1299 parser_create.add_argument('-B', '--srcbranch', help='Branch in source repository if fetching from an SCM such as git (default master)')
1281 parser_create.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)') 1300 parser_create.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)')
1282 parser_create.add_argument('--fetch-dev', action="store_true", help='For npm, also fetch devDependencies') 1301 parser_create.add_argument('--fetch-dev', action="store_true", help='For npm, also fetch devDependencies')
1283 parser_create.add_argument('--devtool', action="store_true", help=argparse.SUPPRESS) 1302 parser_create.add_argument('--devtool', action="store_true", help=argparse.SUPPRESS)