wic: implement search of includes

Used custom argument type to implement search of include
.wks files in canned wks paths. Include files can be
specified either by full path or by name.

[YOCTO #8848]

(From OE-Core rev: 3695962ba4b685f304f1039978cec60d1b1712e3)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh
2016-01-19 18:51:08 +02:00
committed by Richard Purdie
parent 15ea180414
commit 50a3dc5b2d

View File

@@ -25,11 +25,12 @@
# Ed Bartosh <ed.bartosh> (at] linux.intel.com> # Ed Bartosh <ed.bartosh> (at] linux.intel.com>
import os
import shlex import shlex
from argparse import ArgumentParser, ArgumentError, ArgumentTypeError from argparse import ArgumentParser, ArgumentError, ArgumentTypeError
from wic.partition import Partition from wic.partition import Partition
from wic.utils.misc import find_canned
class KickStartError(Exception): class KickStartError(Exception):
pass pass
@@ -78,6 +79,17 @@ def overheadtype(arg):
return result return result
def cannedpathtype(arg):
"""
Custom type for ArgumentParser
Tries to find file in the list of canned wks paths
"""
scripts_path = os.path.abspath(os.path.dirname(__file__) + '../../..')
result = find_canned(scripts_path, arg)
if not result:
raise ArgumentTypeError("file not found: %s" % arg)
return result
class KickStart(object): class KickStart(object):
def __init__(self, confpath): def __init__(self, confpath):
@@ -117,7 +129,7 @@ class KickStart(object):
bootloader.add_argument('--source') bootloader.add_argument('--source')
include = subparsers.add_parser('include') include = subparsers.add_parser('include')
include.add_argument('path') include.add_argument('path', type=cannedpathtype)
self._parse(parser, confpath) self._parse(parser, confpath)