From ab8afa839514ba2bf3e1822c1b335cf5843e9b6e Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Wed, 10 Jul 2024 10:36:18 +0200 Subject: [PATCH] opkg-show-deps: Fix common linter warnings This patch fixes common linter warnings. Signed-off-by: Robert Lehmann Signed-off-by: Alex Stewart --- opkg-show-deps | 136 ++++++++++++++++++++++++++----------------------- 1 file changed, 71 insertions(+), 65 deletions(-) diff --git a/opkg-show-deps b/opkg-show-deps index f28ce5b..e273a3d 100755 --- a/opkg-show-deps +++ b/opkg-show-deps @@ -3,28 +3,29 @@ from __future__ import absolute_import from __future__ import print_function -import sys, os, posixpath -from glob import glob +import sys import opkg import getopt import re verbose = 0 + def usage(): - sys.stderr.write("%s [-p Packages] package ...\n" % (sys.argv[0],)) - sys.exit(-1) + sys.stderr.write("%s [-p Packages] package ...\n" % (sys.argv[0],)) + sys.exit(-1) + packages_filename = "Packages" (opts, remaining_args) = getopt.getopt(sys.argv[1:], "hp:") for (optkey, optval) in opts: - if optkey == '-h': - usage() - if optkey == '-p': - packages_filename = optval + if optkey == '-h': + usage() + if optkey == '-p': + packages_filename = optval -if ( not remaining_args ): - usage() +if (not remaining_args): + usage() packages = opkg.Packages() packages.read_packages_file(packages_filename) @@ -32,70 +33,75 @@ packages.read_packages_file(packages_filename) required = {} provider_hash = {} + def split_list(str): - r = [] - l = str.split(",") - for i in l: - ll = i.split("|") - for ii in ll: - ii = ii.strip() - r.append(ii) - return r + r = [] + line = str.split(",") + for i in line: + ll = i.split("|") + for ii in ll: + ii = ii.strip() + r.append(ii) + return r + for i in list(packages.packages.keys()): - p = packages.packages[i] - if p.package not in provider_hash: - provider_hash[p.package] = [] - provider_hash[p.package].append(p) - if p.provides: - provides = p.provides.split(",") - for prov in provides: - prov = prov.strip() - if prov not in provider_hash: - provider_hash[prov] = [] - provider_hash[prov].append(p) + p = packages.packages[i] + if p.package not in provider_hash: + provider_hash[p.package] = [] + provider_hash[p.package].append(p) + if p.provides: + provides = p.provides.split(",") + for prov in provides: + prov = prov.strip() + if prov not in provider_hash: + provider_hash[prov] = [] + provider_hash[prov].append(p) + def find_package(name): - # Return all providers of the named package - if name in provider_hash: - return provider_hash[name] - return None + # Return all providers of the named package + if name in provider_hash: + return provider_hash[name] + return None + def process_dep(pkg, dep): - # Add a provider of the given dependency to the list of required packages - # unless a provider is already present in this list. - dep = re.sub("\s*\(.*\)", "", dep) - dep = re.sub("\*$", "", dep) - newpkgs = find_package(dep) - if newpkgs: - # Loop over all providers of the dependency and return early if any - # provider is already in the list of required pacakges - we only need - # one provider of this dependency. - for newpkg in newpkgs: - if newpkg.package in required: - return - # Select the first provider, add it to the required packages list and - # process its dependencies - recurse(newpkgs[0]) - else: - sys.stderr.write("unsatisfied dependency of %s on '%s'\n" % (pkg.package, dep)) + # Add a provider of the given dependency to the list of required packages + # unless a provider is already present in this list. + dep = re.sub("\s*\(.*\)", "", dep) + dep = re.sub("\*$", "", dep) + newpkgs = find_package(dep) + if newpkgs: + # Loop over all providers of the dependency and return early if any + # provider is already in the list of required pacakges - we only need + # one provider of this dependency. + for newpkg in newpkgs: + if newpkg.package in required: + return + # Select the first provider, add it to the required packages list and + # process its dependencies + recurse(newpkgs[0]) + else: + sys.stderr.write("unsatisfied dependency of %s on '%s'\n" % (pkg.package, dep)) + def recurse(pkg): - # Add a package to the required list and process its dependencies - required[pkg.package] = 1 - if pkg.depends: - deps = split_list(pkg.depends) - for dep in deps: - process_dep(pkg, dep) + # Add a package to the required list and process its dependencies + required[pkg.package] = 1 + if pkg.depends: + deps = split_list(pkg.depends) + for dep in deps: + process_dep(pkg, dep) + for root in remaining_args: - pkgs = find_package(root) - if not pkgs: - sys.stderr.write("Can't find root package '%s'\n" % root) - sys.exit(-1) - for p in pkgs: - recurse(p) - -for pkg in list(required.keys()): - print(pkg) + pkgs = find_package(root) + if not pkgs: + sys.stderr.write("Can't find root package '%s'\n" % root) + sys.exit(-1) + for p in pkgs: + recurse(p) +for pkg in list(required.keys()): + print(pkg)