Parse conflicts and replaces of AUR packages retrieved via AUR RPC

This commit is contained in:
Martchus 2022-09-01 21:45:31 +02:00
parent ccf232a7a7
commit 5feb95039e
2 changed files with 12 additions and 2 deletions

View File

@ -27,7 +27,9 @@ struct LIBPKG_EXPORT AurRpcResult : public ReflectiveRapidJSON::JsonSerializable
std::int64_t FirstSubmitted = 0;
std::int64_t LastModified = 0;
std::string URLPath;
std::vector<std::string> Conflicts;
std::vector<std::string> Provides;
std::vector<std::string> Replaces;
std::vector<std::string> Depends;
std::vector<std::string> MakeDepends;
std::vector<std::string> CheckDepends;

View File

@ -961,9 +961,17 @@ std::vector<PackageSpec> Package::fromAurRpcJson(const char *jsonData, std::size
package->upstreamUrl = std::move(result.URL);
package->licenses = std::move(result.License);
package->groups = std::move(result.Groups);
package->conflicts.reserve(result.Conflicts.size());
for (const auto &dep : result.Conflicts) {
package->conflicts.emplace_back(dep.data(), dep.size());
}
package->provides.reserve(result.Provides.size());
for (const auto &provide : result.Provides) {
package->provides.emplace_back(provide.data(), provide.size());
for (const auto &dep : result.Provides) {
package->provides.emplace_back(dep.data(), dep.size());
}
package->replaces.reserve(result.Replaces.size());
for (const auto &dep : result.Replaces) {
package->replaces.emplace_back(dep.data(), dep.size());
}
for (auto &dependencyName : result.Depends) {
package->dependencies.emplace_back(dependencyName.data(), dependencyName.size());