diff options
Diffstat (limited to 'gentoobrowse-api/util/update.cpp')
-rw-r--r-- | gentoobrowse-api/util/update.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gentoobrowse-api/util/update.cpp b/gentoobrowse-api/util/update.cpp new file mode 100644 index 0000000..bc0082d --- /dev/null +++ b/gentoobrowse-api/util/update.cpp @@ -0,0 +1,45 @@ +#include <maintenance.h> +#include <Ice/Ice.h> +#include <boost/program_options.hpp> + +namespace po = boost::program_options; + +int +main(int c, char ** v) +{ + std::string endpoint; + bool background; + po::options_description opts("Gentoo Browse Util::Update options"); + opts.add_options() + ("endpoint", po::value(&endpoint)->default_value("tcp -p 9001"), "Service endpoint") + ("background,b", po::value(&background)->default_value(false)->zero_tokens(), "Background") + ("help,h", "Show help") + ; + + po::variables_map vm; + po::store(po::command_line_parser(c, v).options(opts).run(), vm); + po::notify(vm); + + if (vm.count("help")) { + std::cerr << opts << std::endl; + exit(1); + } + + auto ic = Ice::initialize(c, v); + auto m = Gentoo::MaintenancePrx::checkedCast(ic->stringToProxy("maintenance:" + endpoint)); + m->ice_ping(); + + auto rpt = m->begin_refreshPackageTree(); + auto rb = m->begin_refreshBugs(); + rpt->waitForSent(); + rb->waitForSent(); + + if (!background) { + m->end_refreshPackageTree(rpt); + m->end_refreshBugs(rb); + } + + ic->destroy(); + return 0; +} + |