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>
This commit is contained in:
parent
54486a1ac3
commit
f465039737
|
@ -65,6 +65,10 @@ def add(args, config, basepath, workspace):
|
|||
elif os.path.isdir(args.recipename):
|
||||
logger.warn('Ambiguous argument %s - assuming you mean it to be the recipe name')
|
||||
|
||||
if args.srctree and os.path.isfile(args.srctree):
|
||||
args.fetchuri = 'file://' + os.path.abspath(args.srctree)
|
||||
args.srctree = ''
|
||||
|
||||
if args.fetch:
|
||||
if args.fetchuri:
|
||||
raise DevtoolError('URI specified as positional argument as well as -f/--fetch')
|
||||
|
|
|
@ -351,11 +351,16 @@ def create_recipe(args):
|
|||
extravalues = {}
|
||||
checksums = (None, None)
|
||||
tempsrc = ''
|
||||
source = args.source
|
||||
srcsubdir = ''
|
||||
srcrev = '${AUTOREV}'
|
||||
if '://' in args.source:
|
||||
|
||||
if os.path.isfile(source):
|
||||
source = 'file://%s' % os.path.abspath(source)
|
||||
|
||||
if '://' in source:
|
||||
# Fetch a URL
|
||||
fetchuri = reformat_git_uri(urldefrag(args.source)[0])
|
||||
fetchuri = reformat_git_uri(urldefrag(source)[0])
|
||||
if args.binary:
|
||||
# Assume the archive contains the directory structure verbatim
|
||||
# so we need to extract to a subdirectory
|
||||
|
@ -426,10 +431,10 @@ def create_recipe(args):
|
|||
if args.extract_to:
|
||||
logger.error('--extract-to cannot be specified if source is a directory')
|
||||
sys.exit(1)
|
||||
if not os.path.isdir(args.source):
|
||||
logger.error('Invalid source directory %s' % args.source)
|
||||
if not os.path.isdir(source):
|
||||
logger.error('Invalid source directory %s' % source)
|
||||
sys.exit(1)
|
||||
srctree = args.source
|
||||
srctree = source
|
||||
srcuri = ''
|
||||
if os.path.exists(os.path.join(srctree, '.git')):
|
||||
# Try to get upstream repo location from origin remote
|
||||
|
|
Loading…
Reference in New Issue