2
# $Id: ipkg-show-deps,v 1.2 2004/03/06 13:08:33 pb Exp $
4
import sys, os, posixpath
15
sys.stderr.write("%s [-p Packages] package ...\n" % (sys.argv[0],))
18
packages_filename = "Packages"
19
(opts, remaining_args) = getopt.getopt(sys.argv[1:], "hp:")
20
for (optkey, optval) in opts:
24
packages_filename = optval
26
if ( not remaining_args ):
29
packages = ipkg.Packages()
30
packages.read_packages_file(packages_filename)
37
l = string.split(str, ",")
39
ll = string.split(i, "|")
45
for i in packages.packages.keys():
46
p = packages.packages[i]
47
if not provider_hash.has_key(p.package):
48
provider_hash[p.package] = []
49
provider_hash[p.package].append(p)
51
provides = string.split(p.provides, ",")
53
prov = string.strip(prov)
54
if not provider_hash.has_key(prov):
55
provider_hash[prov] = []
56
provider_hash[prov].append(p)
58
def find_package(name):
59
if provider_hash.has_key(name):
60
return provider_hash[name]
64
required[pkg.package] = 1
66
deps = split_list(pkg.depends)
68
dep = re.sub("\s*\(.*\)", "", dep)
69
dep = re.sub("\*$", "", dep)
70
newpkgs = find_package(dep)
72
for newpkg in newpkgs:
73
if required.has_key(newpkg.package):
77
sys.stderr.write("unsatisfied dependency of %s on '%s'\n" % (pkg.package, dep))
79
for root in remaining_args:
80
pkgs = find_package(root)
82
sys.stderr.write("Can't find root package '%s'\n" % root)
87
for pkg in required.keys():