diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-07-07 11:57:08 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-12 23:10:15 +0100 |
commit | f465039737112a3975ad3b224a9351e4ac780088 (patch) | |
tree | 9aa0c77eff754161014e7993405d6004ebf9d149 /scripts/lib/recipetool/create.py | |
parent | 54486a1ac30ff47e44be188db7c56e0917413799 (diff) | |
download | poky-f465039737112a3975ad3b224a9351e4ac780088.tar.gz |
recipetool: create: support specifying a file as the local source
It is currently possible to specify a file (e.g. a tarball) on the local
disk as the source, but you have to know to put file:// in front of it.
There's really no need to force users to jump through that hoop if they
really want to do this so check if the specified source is a file and
prefix it with file:// if that's the case.
Also ensure the same works for "devtool add" at the same time.
(From OE-Core rev: 71350003790c38e84b0e525a71a2fe5d24e3d083)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/recipetool/create.py')
-rw-r--r-- | scripts/lib/recipetool/create.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index 95b16fb310..f246028a02 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py | |||
@@ -351,11 +351,16 @@ def create_recipe(args): | |||
351 | extravalues = {} | 351 | extravalues = {} |
352 | checksums = (None, None) | 352 | checksums = (None, None) |
353 | tempsrc = '' | 353 | tempsrc = '' |
354 | source = args.source | ||
354 | srcsubdir = '' | 355 | srcsubdir = '' |
355 | srcrev = '${AUTOREV}' | 356 | srcrev = '${AUTOREV}' |
356 | if '://' in args.source: | 357 | |
358 | if os.path.isfile(source): | ||
359 | source = 'file://%s' % os.path.abspath(source) | ||
360 | |||
361 | if '://' in source: | ||
357 | # Fetch a URL | 362 | # Fetch a URL |
358 | fetchuri = reformat_git_uri(urldefrag(args.source)[0]) | 363 | fetchuri = reformat_git_uri(urldefrag(source)[0]) |
359 | if args.binary: | 364 | if args.binary: |
360 | # Assume the archive contains the directory structure verbatim | 365 | # Assume the archive contains the directory structure verbatim |
361 | # so we need to extract to a subdirectory | 366 | # so we need to extract to a subdirectory |
@@ -426,10 +431,10 @@ def create_recipe(args): | |||
426 | if args.extract_to: | 431 | if args.extract_to: |
427 | logger.error('--extract-to cannot be specified if source is a directory') | 432 | logger.error('--extract-to cannot be specified if source is a directory') |
428 | sys.exit(1) | 433 | sys.exit(1) |
429 | if not os.path.isdir(args.source): | 434 | if not os.path.isdir(source): |
430 | logger.error('Invalid source directory %s' % args.source) | 435 | logger.error('Invalid source directory %s' % source) |
431 | sys.exit(1) | 436 | sys.exit(1) |
432 | srctree = args.source | 437 | srctree = source |
433 | srcuri = '' | 438 | srcuri = '' |
434 | if os.path.exists(os.path.join(srctree, '.git')): | 439 | if os.path.exists(os.path.join(srctree, '.git')): |
435 | # Try to get upstream repo location from origin remote | 440 | # Try to get upstream repo location from origin remote |