summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamroot.jam8
-rw-r--r--gentoobrowse-api/domain/converters.cpp22
-rw-r--r--gentoobrowse-api/domain/converters.h6
-rw-r--r--gentoobrowse-api/domain/converters.impl.h58
-rw-r--r--gentoobrowse-api/domain/unpackPqTextArray.h3
-rw-r--r--gentoobrowse-api/service/depend.cpp7
-rw-r--r--gentoobrowse-api/service/maintenance/updatesProcessor.cpp4
-rw-r--r--gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp3
-rw-r--r--gentoobrowse-api/service/maintenance/useGroupProcessor.cpp3
-rw-r--r--gentoobrowse-api/service/maintenance/useLocalProcessor.cpp4
-rw-r--r--gentoobrowse-api/service/maintenanceBugs.cpp6
-rw-r--r--gentoobrowse-api/service/utils/dbUtils.cpp35
-rw-r--r--gentoobrowse-api/service/utils/git.cpp6
-rw-r--r--gentoobrowse-api/unittests/testDepend.cpp9
-rw-r--r--gentoobrowse-api/unittests/testMaintenance.cpp6
-rw-r--r--gentoobrowse-api/util/update.cpp39
16 files changed, 113 insertions, 106 deletions
diff --git a/Jamroot.jam b/Jamroot.jam
index c57aba9..c3877ef 100644
--- a/Jamroot.jam
+++ b/Jamroot.jam
@@ -14,14 +14,14 @@ project gentoobrowse-api : requirements
<visibility>hidden
<linkflags>"-Wl,-z,defs,--warn-once,--gc-sections"
<variant>release:<lto>on
- <variant>debug:<warnings>extra
+ <toolset>gcc,<variant>debug:<warnings>pedantic
+ <toolset>clang,<variant>debug:<warnings>extra
<variant>debug:<warnings-as-errors>on
<variant>debug:<cflags>-Wnon-virtual-dtor
<variant>debug:<cflags>-Wold-style-cast
<variant>debug:<cflags>-Wcast-align
<variant>debug:<cflags>-Wunused
<variant>debug:<cflags>-Woverloaded-virtual
- <variant>debug:<cflags>-Wpedantic
<variant>debug:<cflags>-Wconversion
<variant>debug:<cflags>-Wsign-conversion
<variant>debug:<cflags>-Wnull-dereference
@@ -85,6 +85,6 @@ project gentoobrowse-api : requirements
build-project gentoobrowse-api ;
-pkg-config.import libxmlpp : : <name>libxml++-3.0 ;
-pkg-config.import glibmm : : <name>glibmm-2.4 ;
+pkg-config.import libxmlpp : : <name>libxml++-5.0 ;
+pkg-config.import glibmm : : <name>glibmm-2.68 ;
diff --git a/gentoobrowse-api/domain/converters.cpp b/gentoobrowse-api/domain/converters.cpp
index e551d9a..4dfcb75 100644
--- a/gentoobrowse-api/domain/converters.cpp
+++ b/gentoobrowse-api/domain/converters.cpp
@@ -8,22 +8,20 @@
#include <string>
namespace Slicer {
- template<typename T> PqArray<T>::PqArray(std::vector<T> * l) : ModelPartForSequence<std::vector<T>>(l) { }
-
template<typename T>
void
- PqArray<T>::SetValue(ValueSource && s)
+ PqArray<T>::SetValue(ValueSource && input)
{
- std::string in;
- s.set(in);
- *this->Model = unpackPqArray<T>(in);
+ std::string inputStr;
+ input.set(inputStr);
+ *this->Model = unpackPqArray<T>(inputStr);
}
template<typename T>
bool
- PqArray<T>::GetValue(ValueTarget && s)
+ PqArray<T>::GetValue(ValueTarget && input)
{
- s.get(packPqArray(*this->Model));
+ input.get(packPqArray(*this->Model));
return true;
}
@@ -31,14 +29,14 @@ namespace Slicer {
template class PqArray<std::string>;
boost::posix_time::ptime
- shortDateToPosixTime(const std::string & s)
+ shortDateToPosixTime(const std::string & input)
{
- return boost::posix_time::ptime(boost::gregorian::from_simple_string(s));
+ return boost::posix_time::ptime(boost::gregorian::from_simple_string(input));
}
std::string
- posixTimeToShortDate(const boost::posix_time::ptime & s)
+ posixTimeToShortDate(const boost::posix_time::ptime & input)
{
- return boost::gregorian::to_sql_string(s.date());
+ return boost::gregorian::to_sql_string(input.date());
}
}
diff --git a/gentoobrowse-api/domain/converters.h b/gentoobrowse-api/domain/converters.h
index 35583e5..3805149 100644
--- a/gentoobrowse-api/domain/converters.h
+++ b/gentoobrowse-api/domain/converters.h
@@ -10,15 +10,15 @@
namespace Slicer {
template<typename T> class DLL_PUBLIC PqArray : public ModelPartForSequence<std::vector<T>> {
public:
- explicit PqArray(std::vector<T> *);
+ using ModelPartForSequence<std::vector<T>>::ModelPartForSequence;
void SetValue(ValueSource &&) override;
bool GetValue(ValueTarget &&) override;
};
DLL_PUBLIC
- boost::posix_time::ptime shortDateToPosixTime(const std::string & s);
+ boost::posix_time::ptime shortDateToPosixTime(const std::string & input);
DLL_PUBLIC
- std::string posixTimeToShortDate(const boost::posix_time::ptime & s);
+ std::string posixTimeToShortDate(const boost::posix_time::ptime & input);
}
diff --git a/gentoobrowse-api/domain/converters.impl.h b/gentoobrowse-api/domain/converters.impl.h
index f6b6bad..d79b7e4 100644
--- a/gentoobrowse-api/domain/converters.impl.h
+++ b/gentoobrowse-api/domain/converters.impl.h
@@ -7,18 +7,22 @@
namespace Slicer {
template<typename T> class UnpackPqTextArrayInto : public UnpackPqTextArray {
public:
- UnpackPqTextArrayInto(std::istream & s, std::vector<T> & l) : UnpackPqTextArray(s), list(l) { }
+ UnpackPqTextArrayInto(std::istream & inputStrm, std::vector<T> & output) :
+ UnpackPqTextArray(inputStrm), list(output)
+ {
+ }
void
- consume(std::string s) override
+ consume(std::string input) override
{
if constexpr (std::is_arithmetic_v<T>) {
- if (std::from_chars(s.c_str(), s.c_str() + s.length(), list.emplace_back()).ec != std::error_code {}) {
+ if (std::from_chars(input.c_str(), input.c_str() + input.length(), list.emplace_back()).ec
+ != std::error_code {}) {
throw std::domain_error {"Invalid arithmetic input"};
}
}
else {
- list.emplace_back(std::move(s));
+ list.emplace_back(std::move(input));
}
}
@@ -28,50 +32,50 @@ namespace Slicer {
template<typename T>
void
- packPqVar(std::ostream & s, const T & l)
+ packPqVar(std::ostream & outputStrm, const T & input)
{
if constexpr (std::is_arithmetic_v<T>) {
- s << l;
+ outputStrm << input;
}
else {
- s << '\"';
- std::transform(l.begin(), l.end(), std::ostream_iterator<std::string_view>(s), [](const char & c) {
- if (c == '"') {
+ outputStrm << '\"';
+ std::ranges::transform(input, std::ostream_iterator<std::string_view>(outputStrm), [](const char & chr) {
+ if (chr == '"') {
return std::string_view(R"(\")");
}
- return std::string_view(&c, 1);
+ return std::string_view(&chr, 1);
});
- s << '\"';
+ outputStrm << '\"';
}
}
template<typename T>
std::vector<T>
- unpackPqArray(const std::string & s)
+ unpackPqArray(const std::string & input)
{
std::vector<T> rtn;
- std::stringstream ss(s);
- UnpackPqTextArrayInto<T> u(ss, rtn);
- u.yylex();
+ std::stringstream inputStrm(input);
+ UnpackPqTextArrayInto<T> unpacker(inputStrm, rtn);
+ unpacker.yylex();
return rtn;
}
template<typename T>
std::string
- packPqArray(const T & l)
+ packPqArray(const T & input)
{
- std::stringstream ss;
- ss << "{";
- if (!l.empty()) {
- auto i = l.cbegin();
- packPqVar(ss, *i);
- i++;
- while (i != l.cend()) {
- ss << ",";
- packPqVar(ss, *i++);
+ std::stringstream outputStrm;
+ outputStrm << "{";
+ if (!input.empty()) {
+ auto chr = input.cbegin();
+ packPqVar(outputStrm, *chr);
+ chr++;
+ while (chr != input.cend()) {
+ outputStrm << ",";
+ packPqVar(outputStrm, *chr++);
}
}
- ss << "}";
- return std::move(ss).str();
+ outputStrm << "}";
+ return std::move(outputStrm).str();
}
}
diff --git a/gentoobrowse-api/domain/unpackPqTextArray.h b/gentoobrowse-api/domain/unpackPqTextArray.h
index 47c4cb7..8df8f85 100644
--- a/gentoobrowse-api/domain/unpackPqTextArray.h
+++ b/gentoobrowse-api/domain/unpackPqTextArray.h
@@ -9,8 +9,7 @@
namespace Slicer {
class UnpackPqTextArray : public yyFlexLexer {
public:
- UnpackPqTextArray(std::istream &);
- virtual ~UnpackPqTextArray() = default;
+ explicit UnpackPqTextArray(std::istream &);
int yylex() override;
void LexerError(const char * msg) override;
diff --git a/gentoobrowse-api/service/depend.cpp b/gentoobrowse-api/service/depend.cpp
index 4cfc1b4..28983d2 100644
--- a/gentoobrowse-api/service/depend.cpp
+++ b/gentoobrowse-api/service/depend.cpp
@@ -7,11 +7,12 @@
#include <lexer-regex.h>
#include <memory>
#include <optional>
+#include <ranges>
#include <string>
namespace Portage::Utils {
AdHoc::Lexer::PatternPtr WhenUse_Begin(
- AdHoc::LexerMatchers::regex(R"(\s*(!?[[:alnum:]_@-]+)\?\s*\(\s*)", G_REGEX_OPTIMIZE));
+ AdHoc::LexerMatchers::regex(R"(\s*(!?[[:alnum:]_@+-]+)\?\s*\(\s*)", G_REGEX_OPTIMIZE));
AdHoc::Lexer::PatternPtr WhenUse_End(AdHoc::LexerMatchers::regex(R"(\s*\)\s*)", G_REGEX_OPTIMIZE));
AdHoc::Lexer::PatternPtr Or_Begin(AdHoc::LexerMatchers::regex(R"(\s*\|\|\s*\(\s*)", G_REGEX_OPTIMIZE));
AdHoc::Lexer::PatternPtr Or_Group(AdHoc::LexerMatchers::regex(R"(\s*\(\s*)", G_REGEX_OPTIMIZE));
@@ -45,8 +46,8 @@ namespace Portage::Utils {
{
std::vector<T> rtn;
if (x) {
- Glib::Regex::split_simple(",", *x).assign_to(rtn);
- std::sort(rtn.begin(), rtn.end());
+ std::ranges::copy(Glib::Regex::split_simple(",", *x), std::back_inserter(rtn));
+ std::ranges::sort(rtn);
}
return rtn;
}
diff --git a/gentoobrowse-api/service/maintenance/updatesProcessor.cpp b/gentoobrowse-api/service/maintenance/updatesProcessor.cpp
index 9e4a536..2d49bdb 100644
--- a/gentoobrowse-api/service/maintenance/updatesProcessor.cpp
+++ b/gentoobrowse-api/service/maintenance/updatesProcessor.cpp
@@ -34,8 +34,8 @@ namespace Glib {
using namespace AdHoc::FileUtils;
namespace Gentoo::Service {
- static Glib::RefPtr<Glib::Regex> move
- = Glib::Regex::create(R"R(^move ([^/]+)/([^ ]+) ([^/]+)/(.+)$)R", Glib::RegexCompileFlags::REGEX_MULTILINE);
+ static auto move
+ = Glib::Regex::create(R"R(^move ([^/]+)/([^ ]+) ([^/]+)/(.+)$)R", Glib::Regex::CompileFlags::MULTILINE);
unsigned char
UpdatesProcessor::phase() const
diff --git a/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp b/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp
index 811cd87..7dfe5be 100644
--- a/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp
+++ b/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp
@@ -20,8 +20,7 @@ namespace Glib {
using namespace AdHoc::FileUtils;
namespace Gentoo::Service {
- static Glib::RefPtr<Glib::Regex> useDesc
- = Glib::Regex::create(R"(^([^#\s][^ ]*)\s+-\s+(.*)$)", Glib::RegexCompileFlags::REGEX_MULTILINE);
+ static auto useDesc = Glib::Regex::create(R"(^([^#\s][^ ]*)\s+-\s+(.*)$)", Glib::Regex::CompileFlags::MULTILINE);
unsigned char
UseGlobalProcessor::phase() const
diff --git a/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp b/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp
index 5d25a21..77e0ba3 100644
--- a/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp
+++ b/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp
@@ -28,8 +28,7 @@ namespace Glib {
namespace U = Gentoo::Utils;
namespace Gentoo::Service {
- static Glib::RefPtr<Glib::Regex> useDesc
- = Glib::Regex::create(R"(^([^#\s][^ ]*)\s+-\s+(.*)$)", Glib::RegexCompileFlags::REGEX_MULTILINE);
+ static auto useDesc = Glib::Regex::create(R"(^([^#\s][^ ]*)\s+-\s+(.*)$)", Glib::Regex::CompileFlags::MULTILINE);
unsigned char
UseGroupProcessor::phase() const
diff --git a/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp b/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp
index 17fead6..eabe4c0 100644
--- a/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp
+++ b/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp
@@ -24,8 +24,8 @@ namespace Glib {
using namespace AdHoc::FileUtils;
namespace Gentoo::Service {
- static Glib::RefPtr<Glib::Regex> useDesc = Glib::Regex::create(
- R"(^([^#\s][^/]*)/([^:]+):([^ ]+)\s+-\s+(.*)$)", Glib::RegexCompileFlags::REGEX_MULTILINE);
+ static auto useDesc = Glib::Regex::create(
+ R"(^([^#\s][^/]*)/([^:]+):([^ ]+)\s+-\s+(.*)$)", Glib::Regex::CompileFlags::MULTILINE);
unsigned char
UseLocalProcessor::phase() const
diff --git a/gentoobrowse-api/service/maintenanceBugs.cpp b/gentoobrowse-api/service/maintenanceBugs.cpp
index c99a355..6e7a8dc 100644
--- a/gentoobrowse-api/service/maintenanceBugs.cpp
+++ b/gentoobrowse-api/service/maintenanceBugs.cpp
@@ -50,13 +50,13 @@ namespace Gentoo::Service {
protected:
void
- on_start_element(const Glib::ustring & e, const xmlpp::SaxParser::AttributeList &) override
+ on_start_element(const xmlpp::ustring & e, const xmlpp::SaxParser::AttributeList &) override
{
stk.push(e);
}
void
- on_characters(const Glib::ustring & t) override
+ on_characters(const xmlpp::ustring & t) override
{
if (stk.top() == "a") {
attributes += t;
@@ -67,7 +67,7 @@ namespace Gentoo::Service {
}
void
- on_end_element(const Glib::ustring & e) override
+ on_end_element(const xmlpp::ustring & e) override
{
stk.pop();
if (e == "li") {
diff --git a/gentoobrowse-api/service/utils/dbUtils.cpp b/gentoobrowse-api/service/utils/dbUtils.cpp
index 49cd4de..396e75a 100644
--- a/gentoobrowse-api/service/utils/dbUtils.cpp
+++ b/gentoobrowse-api/service/utils/dbUtils.cpp
@@ -1,54 +1,55 @@
#include "dbUtils.h"
#include <boost/algorithm/string/join.hpp>
-#include <compileTimeFormatter.h>
#include <connection.h>
+#include <format>
#include <tablepatch.h>
#include <unistd.h>
#include <vector>
namespace Gentoo::Utils::Database {
std::string
- emptyClone(DB::Connection * db, const std::string & orig)
+ emptyClone(DB::Connection * dbc, const std::string & orig)
{
auto tempTable = orig;
auto dot = tempTable.rfind('.');
if (dot != std::string::npos) {
tempTable = tempTable.substr(dot + 1);
}
- tempTable += AdHoc::scprintf<"_clone_%?%?">(getpid(), db);
- db->execute("CREATE TEMPORARY TABLE " + tempTable + " AS SELECT * FROM " + orig + " WHERE false");
+ tempTable += std::format("_clone_{}{}", getpid(), static_cast<void *>(dbc));
+ dbc->execute(std::format("CREATE TEMPORARY TABLE {} AS SELECT * FROM {} WHERE false", tempTable, orig));
return tempTable;
}
std::pair<std::string, DB::ModifyCommandPtr>
- namedTemp(DB::Connection * db, const std::string & tempTable, const std::map<std::string, const std::string> & cols)
+ namedTemp(
+ DB::Connection * dbc, const std::string & tempTable, const std::map<std::string, const std::string> & cols)
{
std::set<std::string> keys;
std::set<std::string> defs;
- for (const auto & c : cols) {
- keys.insert(c.first);
- defs.insert(c.first + " " + c.second);
+ for (const auto & col : cols) {
+ keys.insert(col.first);
+ defs.insert(std::format("{} {}", col.first, col.second));
}
- db->execute("CREATE TEMPORARY TABLE " + tempTable + "(" + boost::join(defs, ",") + ")");
- return {tempTable, tablePatchInserter(db, tempTable, keys)};
+ dbc->execute(std::format("CREATE TEMPORARY TABLE {}({})", tempTable, boost::join(defs, ",")));
+ return {tempTable, tablePatchInserter(dbc, tempTable, keys)};
}
void
- drop(DB::Connection * db, const std::string & table)
+ drop(DB::Connection * dbc, const std::string & table)
{
- db->execute("DROP TABLE " + table);
+ dbc->execute(std::format("DROP TABLE {}", table));
}
DB::ModifyCommandPtr
- tablePatchInserter(DB::Connection * dbc, const DB::TablePatch & p)
+ tablePatchInserter(DB::Connection * dbc, const DB::TablePatch & patch)
{
- return tablePatchInserter(dbc, p.src, p.cols);
+ return tablePatchInserter(dbc, patch.src, patch.cols);
}
DB::ModifyCommandPtr
- tablePatchInserter(DB::Connection * dbc, const std::string & t, const std::set<std::string> & c)
+ tablePatchInserter(DB::Connection * dbc, const std::string & table, const std::set<std::string> & columns)
{
- return dbc->modify("INSERT INTO " + t + "(" + boost::algorithm::join(c, ", ") + ") VALUES("
- + boost::algorithm::join(std::vector<std::string>(c.size(), "?"), ", ") + ")");
+ return dbc->modify(std::format("INSERT INTO {}({}) VALUES({})", table, boost::join(columns, ", "),
+ boost::join(std::vector<std::string>(columns.size(), "?"), ", ")));
}
}
diff --git a/gentoobrowse-api/service/utils/git.cpp b/gentoobrowse-api/service/utils/git.cpp
index 140c41f..8fc7c4a 100644
--- a/gentoobrowse-api/service/utils/git.cpp
+++ b/gentoobrowse-api/service/utils/git.cpp
@@ -34,10 +34,8 @@ namespace Gentoo::Utils::Git {
{
auto opts = gitSafeGet(git_fetch_init_options, static_cast<unsigned int>(GIT_FETCH_OPTIONS_VERSION));
opts.prune = GIT_FETCH_PRUNE;
- opts.update_fetchhead = 1;
- auto localBranch = gitSafeGet(git_repository_head, git_reference_free, repo);
- auto localBranchName = gitSafeGet(git_branch_name, localBranch.get());
- auto refspec = RefSpec::get(localBranchName, git_remote_name(remote), remoteBranchName);
+ opts.update_fetchhead = GIT_REMOTE_UPDATE_FETCHHEAD;
+ auto refspec = RefSpec::get(remoteBranchName, git_remote_name(remote), remoteBranchName);
std::array<char *, 1> s {refspec.data()};
git_strarray refs = {s.data(), 1};
gitSafe(git_remote_fetch, remote, &refs, &opts, nullptr);
diff --git a/gentoobrowse-api/unittests/testDepend.cpp b/gentoobrowse-api/unittests/testDepend.cpp
index a02c87a..52a020f 100644
--- a/gentoobrowse-api/unittests/testDepend.cpp
+++ b/gentoobrowse-api/unittests/testDepend.cpp
@@ -293,6 +293,15 @@ BOOST_AUTO_TEST_CASE(wine_staging)
BOOST_REQUIRE_EQUAL(ds.size(), 9);
}
+BOOST_AUTO_TEST_CASE(ccache)
+{
+ auto ds = Portage::Utils::Depend::parse(
+ ">=app-arch/zstd-1.3.4:= !static-c++? ( >=dev-cpp/cpp-httplib-0.10.6:= >=dev-libs/libfmt-8.0.0:= ) "
+ ">=dev-libs/blake3-1.4.0:= >=dev-libs/xxhash-0.8.0 redis? ( >=dev-libs/hiredis-0.13.3:= ) "
+ "dev-util/shadowman sys-apps/gentoo-functions");
+ BOOST_REQUIRE_EQUAL(ds.size(), 8);
+}
+
BOOST_AUTO_TEST_CASE(useWithAtSymble)
{
auto ds = Portage::Utils::Depend::parse("some@thing? ( app-arch/bzip2 )");
diff --git a/gentoobrowse-api/unittests/testMaintenance.cpp b/gentoobrowse-api/unittests/testMaintenance.cpp
index 42691e4..4f4179e 100644
--- a/gentoobrowse-api/unittests/testMaintenance.cpp
+++ b/gentoobrowse-api/unittests/testMaintenance.cpp
@@ -274,7 +274,7 @@ BOOST_AUTO_TEST_CASE(testUpdateGitRepository)
git_repository * repo;
BOOST_REQUIRE_EQUAL(0, git_repository_init(&repo, testRepo.c_str(), false));
git_remote * origin;
- BOOST_REQUIRE_EQUAL(0, git_remote_create(&origin, repo, "origin", "http://git.randomdan.homeip.net/git/portage"));
+ BOOST_REQUIRE_EQUAL(0, git_remote_create(&origin, repo, "origin", "https://git.randomdan.homeip.net/git/portage"));
git_remote_free(origin);
auto commitOid = create_initial_commit(repo);
std::array<char, GIT_OID_HEXSZ + 1> commit {};
@@ -287,9 +287,9 @@ BOOST_AUTO_TEST_CASE(testUpdateGitRepository)
insRepo->bindParamS(0, "testrepo");
insRepo->bindParamS(1, testRepo.string());
insRepo->bindParamS(2, "origin");
- insRepo->bindParamS(3, "master");
+ insRepo->bindParamS(3, "main");
insRepo->bindParamS(4, commit.data());
- insRepo->execute();
+ BOOST_REQUIRE_NO_THROW(insRepo->execute());
// Update
m->updateRepositories();
diff --git a/gentoobrowse-api/util/update.cpp b/gentoobrowse-api/util/update.cpp
index f00cd0b..7f67ada 100644
--- a/gentoobrowse-api/util/update.cpp
+++ b/gentoobrowse-api/util/update.cpp
@@ -9,17 +9,16 @@
#include <exception>
#include <future>
#include <iostream>
-#include <memory>
#include <string>
#include <vector>
namespace po = boost::program_options;
int
-main(int c, char ** v)
+main(int argc, char ** argv)
{
std::string endpoint;
- bool background, tree, bugs, sendNotifications, pull;
+ bool background {}, tree {}, bugs {}, sendNotifications {}, pull {};
{
po::options_description opts("Gentoo Browse Util::Update options");
opts.add_options()("endpoint", po::value(&endpoint)->default_value("tcp -p 9001"), "Service endpoint")(
@@ -29,48 +28,48 @@ main(int c, char ** v)
"pull", po::value(&pull)->default_value(true), "Perform a git pull on repositories")("notifications",
po::value(&sendNotifications)->default_value(true), "Send notification emails")("help,h", "Show help");
- po::variables_map vm;
- po::store(po::command_line_parser(c, v).options(opts).run(), vm);
- po::notify(vm);
+ po::variables_map varmap;
+ po::store(po::command_line_parser(argc, argv).options(opts).run(), varmap);
+ po::notify(varmap);
- if (vm.count("help")) {
- std::cerr << opts << std::endl;
- exit(1);
+ if (varmap.contains("help")) {
+ std::cerr << opts << '\n';
+ exit(EXIT_FAILURE);
}
}
- auto ic = Ice::initialize(c, v);
- auto m = Ice::checkedCast<Gentoo::MaintenancePrx>(ic->stringToProxy("maintenance:" + endpoint));
- m->ice_ping();
+ auto ice = Ice::initialize(argc, argv);
+ auto maintPrx = Ice::checkedCast<Gentoo::MaintenancePrx>(ice->stringToProxy("maintenance:" + endpoint));
+ maintPrx->ice_ping();
std::vector<std::future<void>> jobs;
if (bugs) {
- jobs.push_back(m->refreshBugsAsync());
+ jobs.push_back(maintPrx->refreshBugsAsync());
}
if (pull) {
- m->updateRepositories();
+ maintPrx->updateRepositories();
}
if (tree) {
- jobs.push_back(m->refreshPackageTreeAsync());
+ jobs.push_back(maintPrx->refreshPackageTreeAsync());
}
int failures = 0;
if (!background) {
- std::for_each(jobs.begin(), jobs.end(), [&failures](auto & f) {
+ std::ranges::for_each(jobs, [&failures](auto & future) {
try {
- f.get();
+ future.get();
}
catch (const std::exception & ex) {
failures += 1;
- std::cerr << ex.what() << std::endl;
+ std::cerr << ex.what() << '\n';
}
});
if (sendNotifications) {
- m->sendNotifications();
+ maintPrx->sendNotifications();
}
}
jobs.clear();
- ic->destroy();
+ ice->destroy();
return failures;
}