#!/usr/bin/python
from l3tlib.command import L3tCommand


class Package(L3tCommand):

    descr = """Search for packages

It searches for all binaries in all products and match them against
ptfdb-defined products.

If a product only shows "src" as the architecture available, it cannot be
used directly with ptfsetup. Then use

    l3pkg-binaries -p <product> <package>

in order to see the binary names available for that product, which then can
be used with ptfsetup. (This does not work yet for multispec packages.)
"""
    usage = "%prog [package name]"

    def init_parser(self, parser):
        super(Package, self).init_parser(parser)

    def parse_args(self, parser, args):
        opts, args = super(Package, self).parse_args(parser, args)
        if not args:
            parser.error("no package names provided")
        return opts, args

    def run(self):
        for arg in self.args:
            found = self.l3t.reverse_package_search(arg)
            for product, version, archs in found:
                print product, version, ", ".join(archs)

Package().main()
