scripts/yocto-compat-layer.py: Add option to disable layer autodiscovery

Sometimes there is a need to only analyze the layer specified by the
command line, the new option -n will disable autodiscovery of layers
and only will try to test specified layers.

(From OE-Core rev: f2f6f0c938226802163698ef14a8a9103da362a0)

Signed-off-by: Aníbal Limón <anibal.limon@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:
Aníbal Limón 2017-03-20 17:33:25 -06:00 committed by Richard Purdie
parent 995cb88233
commit 4703aa2b3b
2 changed files with 15 additions and 6 deletions

View File

@ -108,20 +108,27 @@ def _detect_layer(layer_path):
return layer
def detect_layers(layer_directories):
def detect_layers(layer_directories, no_auto):
layers = []
for directory in layer_directories:
if directory[-1] == '/':
directory = directory[0:-1]
for root, dirs, files in os.walk(directory):
dir_name = os.path.basename(root)
conf_dir = os.path.join(root, 'conf')
if no_auto:
conf_dir = os.path.join(directory, 'conf')
if os.path.isdir(conf_dir):
layer = _detect_layer(root)
layer = _detect_layer(directory)
if layer:
layers.append(layer)
else:
for root, dirs, files in os.walk(directory):
dir_name = os.path.basename(root)
conf_dir = os.path.join(root, 'conf')
if os.path.isdir(conf_dir):
layer = _detect_layer(root)
if layer:
layers.append(layer)
return layers

View File

@ -47,6 +47,8 @@ def main():
help='Layer to test compatibility with Yocto Project')
parser.add_argument('-o', '--output-log',
help='File to output log (optional)', action='store')
parser.add_argument('-n', '--no-auto', help='Disable auto layer discovery',
action='store_true')
parser.add_argument('-d', '--debug', help='Enable debug output',
action='store_true')
parser.add_argument('-q', '--quiet', help='Print only errors',
@ -74,7 +76,7 @@ def main():
builddir = os.environ['BUILDDIR']
bblayersconf = os.path.join(builddir, 'conf', 'bblayers.conf')
layers = detect_layers(args.layers)
layers = detect_layers(args.layers, args.no_auto)
if not layers:
logger.error("Fail to detect layers")
return 1