Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / examples / whatprovides.cc
1 #include <iostream>
2
3 #include <zypp/ZYpp.h>
4 #include <zypp/ZYppFactory.h>
5 #include <zypp/PathInfo.h>
6 #include <zypp/Capability.h>
7 #include <zypp/sat/Solvable.h>
8 #include <zypp/sat/WhatProvides.h>
9
10 int main(int argc, char **argv) {
11        zypp::ZYpp::Ptr zyppPtr = zypp::ZYppFactory::instance().getZYpp();
12
13        zypp::Pathname sysRoot( "/" );
14
15        zyppPtr->initializeTarget( sysRoot, false );
16        zyppPtr->target()->load();
17
18        std::cout << "Looking for packages which provide " << argv[1] << std::endl;
19        zypp::Capability cap(argv[1]);
20        zypp::sat::WhatProvides wp(cap);
21
22        if (wp.empty()) {
23                std::cout << "No providers of " << argv[1] << " found" << std::endl;
24        } else {
25                zypp::sat::Solvable package(*wp.begin());
26                std::cout << "Provided by " << package.name() << " version " << package.edition().version()
27                        << std::endl;
28        }
29
30        return EXIT_SUCCESS;
31 }