From d7c9805b8c6e3d05167d1ac8aeb6b2ea3a8afc0d Mon Sep 17 00:00:00 2001 From: Patrick Vacek Date: Thu, 28 Jun 2018 13:55:10 +0200 Subject: find_packages.py: Do not write anything if recipe is not found. --- scripts/find_packages.py | 55 ++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 25 deletions(-) (limited to 'scripts') diff --git a/scripts/find_packages.py b/scripts/find_packages.py index 53b3ca7..893ad85 100755 --- a/scripts/find_packages.py +++ b/scripts/find_packages.py @@ -159,7 +159,7 @@ def main(): parser.add_argument('recipe', metavar='recipe', help='a recipe to investigate') args = parser.parse_args() rn = args.recipe - with open(rn + '-dependencies.yml', "w") as manifest_file, bb.tinfoil.Tinfoil() as tinfoil: + with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare() # These are the packages that bitbake assumes are provided by the host # system. They do not have recipes, so searching tinfoil for them will @@ -169,31 +169,36 @@ def main(): if SKIP_BUILD_TOOLS: assume_provided.extend(KNOWN_BUILD_TOOLS) - manifest_file.write('project:\n') data = get_recipe_info(tinfoil, rn) - data.depends = [] - depends = data.getVar('DEPENDS').split() - for dep in depends: - if dep not in assume_provided: - data.depends.append(dep) - print_package(manifest_file, data, is_project=True) - manifest_file.write(' scopes:\n') - manifest_file.write(' - name: "all"\n') - manifest_file.write(' delivered: true\n') - manifest_file.write(' dependencies:\n') - - recipe_info = dict([(rn, data)]) - packages = [] - find_dependencies(manifest_file, tinfoil, assume_provided, recipe_info, packages, rn, order=1) - - manifest_file.write('packages:\n') - - # Iterate through the list of packages found to print out their full - # information. Skip the initial recipe since we already printed it out. - for p in packages: - if p is not rn: - data = recipe_info[p] - print_package(manifest_file, data, is_project=False) + if not data: + print('Nothing to do!') + return + + with open(rn + '-dependencies.yml', "w") as manifest_file: + manifest_file.write('project:\n') + data.depends = [] + depends = data.getVar('DEPENDS').split() + for dep in depends: + if dep not in assume_provided: + data.depends.append(dep) + print_package(manifest_file, data, is_project=True) + manifest_file.write(' scopes:\n') + manifest_file.write(' - name: "all"\n') + manifest_file.write(' delivered: true\n') + manifest_file.write(' dependencies:\n') + + recipe_info = dict([(rn, data)]) + packages = [] + find_dependencies(manifest_file, tinfoil, assume_provided, recipe_info, packages, rn, order=1) + + manifest_file.write('packages:\n') + + # Iterate through the list of packages found to print out their full + # information. Skip the initial recipe since we already printed it out. + for p in packages: + if p is not rn: + data = recipe_info[p] + print_package(manifest_file, data, is_project=False) if __name__ == "__main__": -- cgit v1.2.3-54-g00ecf