Improve logging status when rebuilding DB
Override previous "Processing package …" line to avoid huge output.
This commit is contained in:
parent
ce6da89a40
commit
77000ac7d3
|
@ -77,19 +77,24 @@ void LibPkg::Database::rebuildDb()
|
||||||
auto txn = m_storage->packages.getRWTransaction();
|
auto txn = m_storage->packages.getRWTransaction();
|
||||||
auto processed = std::size_t();
|
auto processed = std::size_t();
|
||||||
auto ok = std::size_t();
|
auto ok = std::size_t();
|
||||||
txn.rebuild([count = txn.size(), &processed, &ok](StorageID id, Package *package) mutable {
|
auto lastOk = false;
|
||||||
std::cerr << "Processing package " << ++processed << " / " << count << '\n';
|
txn.rebuild([count = txn.size(), &processed, &ok, &lastOk](StorageID id, Package *package) mutable {
|
||||||
|
std::cerr << "Processing package " << ++processed << " / " << count << " ";
|
||||||
if (!package) {
|
if (!package) {
|
||||||
std::cerr << "Deleting package " << id << ": unable to deserialize\n";
|
std::cerr << "\nDeleting package " << id << ": unable to deserialize\n";
|
||||||
return false;
|
return lastOk = false;
|
||||||
}
|
}
|
||||||
if (package->name.empty()) {
|
if (package->name.empty()) {
|
||||||
std::cerr << "Deleting package " << id << ": name is empty\n";
|
std::cerr << "\nDeleting package " << id << ": name is empty\n";
|
||||||
return false;
|
return lastOk = false;
|
||||||
}
|
}
|
||||||
|
std::cerr << '\r';
|
||||||
++ok;
|
++ok;
|
||||||
return true;
|
return lastOk = true;
|
||||||
});
|
});
|
||||||
|
if (lastOk) {
|
||||||
|
std::cerr << '\n';
|
||||||
|
}
|
||||||
if (ok < processed) {
|
if (ok < processed) {
|
||||||
std::cerr << "Discarding " << (processed - ok) << " invalid packages from \"" << name << "\".\n";
|
std::cerr << "Discarding " << (processed - ok) << " invalid packages from \"" << name << "\".\n";
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue