From: Ed Bartosh Date: Tue, 19 Jan 2016 16:51:08 +0000 (+0200) Subject: wic: implement search of includes X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~27586 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3695962ba4b685f304f1039978cec60d1b1712e3;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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] Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index c73a456766b..3722799b51c 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py @@ -25,11 +25,12 @@ # Ed Bartosh (at] linux.intel.com> - +import os import shlex from argparse import ArgumentParser, ArgumentError, ArgumentTypeError from wic.partition import Partition +from wic.utils.misc import find_canned class KickStartError(Exception): pass @@ -78,6 +79,17 @@ def overheadtype(arg): 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): def __init__(self, confpath): @@ -117,7 +129,7 @@ class KickStart(object): bootloader.add_argument('--source') include = subparsers.add_parser('include') - include.add_argument('path') + include.add_argument('path', type=cannedpathtype) self._parse(parser, confpath)