diff --git a/helpers/check-platform.py b/helpers/check-platform.py new file mode 100644 --- /dev/null +++ b/helpers/check-platform.py @@ -0,0 +1,37 @@ +#!/usr/bin/python3 +import os +import sys +import argparse +import subprocess +import yaml +from helperslib import BuildSpecs, Buildable, CommonUtils, EnvironmentHandler + +parser = argparse.ArgumentParser(description='Utility to check if metainfo.yaml is lying.', formatter_class=argparse.ArgumentDefaultsHelpFormatter) +parser.add_argument('metainfo', nargs='+', help='metainfo.yaml files', type=str) +arguments = parser.parse_args() + +allPlatforms = { + 'SUSEQt5.7': 'Linux', + 'FreeBSDQt5.9': 'FreeBSD', + 'WindowsMSVCQt5.9': 'Windows', + None: 'MacOSX', + 'AndroidQt5.9': 'Android' +} + +resolver = Buildable.DependencyResolver() +resolver.loadProjectsFromTree(os.path.join( CommonUtils.scriptsBaseDirectory(), 'repo-metadata', 'projects' )) +resolver.loadProjectsIgnoreRules(os.path.join( CommonUtils.scriptsBaseDirectory(), 'local-metadata', 'project-ignore-rules.yaml' )) + +for metainfo in arguments.metainfo: + metainfoFile = open(metainfo, 'r', encoding='utf-8') + read = yaml.load(metainfoFile) + platforms = [p['name'] for p in read['platforms']] + if 'All' in platforms: + platforms = allPlatforms.values() + + projectname=os.path.split(metainfo)[-2] + p = resolver.retrieveProject( projectname ) + ignoredPlatforms = [allPlatforms[ignoredPlatform] for ignoredPlatform in p.ignoredOnPlatforms] + for ip in ignoredPlatforms: + if ip in platforms: + print('%s: %s is disabled in build.kde.org' % (projectname, ip))