diff --git a/src/engine/experimental/databasesanitizer.cpp b/src/engine/experimental/databasesanitizer.cpp --- a/src/engine/experimental/databasesanitizer.cpp +++ b/src/engine/experimental/databasesanitizer.cpp @@ -244,18 +244,26 @@ const QSharedPointer& urlFilter) { auto listResult = m_pimpl->createList(deviceIds, accessFilter, urlFilter); + auto ignoredDevices = m_pimpl->deviceFilters(listResult.first, accessFilter); const auto sep = QLatin1Char(' '); QTextStream out(stdout); QTextStream err(stderr); + auto& summary = listResult.second; for (const auto& info: listResult.first) { - out << QStringLiteral("%1").arg(info.accessible ? "+" : "!") - << sep << QStringLiteral("device: %1").arg(info.deviceId) - << sep << QStringLiteral("inode: %1").arg(info.inode) - << sep << QStringLiteral("url: %1").arg(info.url) - << endl; + if (ignoredDevices[info.id] == false) { + out << QStringLiteral("%1").arg(info.accessible ? "+" : "!") + << sep << QStringLiteral("device: %1").arg(info.deviceId) + << sep << QStringLiteral("inode: %1").arg(info.inode) + << sep << QStringLiteral("url: %1").arg(info.url) + << endl; + } else if (info.accessible) { + summary.accessible--; + summary.ignored++; + } else { + summary.ignored++; + } } - const auto& summary = listResult.second; if (accessFilter & IgnoreAvailable) { err << i18n("Total: %1, Inaccessible: %2", summary.total, @@ -282,19 +290,20 @@ const auto sep = QLatin1Char(' '); QTextStream out(stdout); QTextStream err(stderr); - int matchCount = 0; + DatabaseSanitizerImpl::Summary summary; + summary.total = useCount.size(); + for (auto it = useCount.cbegin(); it != useCount.cend(); it++) { auto id = it.key(); auto info = m_pimpl->getStorageInfo(id); - auto mounted = info.isValid(); - if (info.fileSystemType() == QLatin1String("tmpfs")) { - continue; - } else if (mounted && (accessFilter & IgnoreMounted)) { - continue; - } else if (!mounted && (accessFilter & IgnoreUnmounted)) { + if (m_pimpl->isIgnored(info, accessFilter)) { + summary.ignored++; continue; } - matchCount++; + auto mounted = info.isValid(); + if (mounted) { + summary.accessible++; + } // TODO coloring would be nice, but "...|grep '^!'" does not work with it. // out << QStringLiteral("%1").arg(dev.mounted ? "+" : "\033[1;31m!") // Can be done, see: https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/global/qlogging.cpp#n263 @@ -306,8 +315,7 @@ << sep << QStringLiteral("indexed-items:%1").arg(it.value()); if (mounted) { - out - << sep << QStringLiteral("fstype:%1").arg(info.fileSystemType().toPercentEncoding().constData()) + out << sep << QStringLiteral("fstype:%1").arg(info.fileSystemType().toPercentEncoding().constData()) << sep << QStringLiteral("device:%1").arg(info.device().constData()) << sep << QStringLiteral("path:%1").arg(info.rootPath()) ; @@ -317,7 +325,12 @@ out << endl; } - err << i18n("Found %1 matching in %2 devices", matchCount, useCount.size()) << endl; + err << i18n("Total: %1, Ignored: %2; Mounted: %3, Not mounted: %4", + summary.total, + summary.ignored, + summary.accessible, + summary.total - (summary.ignored + summary.accessible)) + << endl; } void DatabaseSanitizer::removeStaleEntries(const QVector& deviceIds, diff --git a/src/tools/experimental/baloodb/main.cpp b/src/tools/experimental/baloodb/main.cpp --- a/src/tools/experimental/baloodb/main.cpp +++ b/src/tools/experimental/baloodb/main.cpp @@ -77,14 +77,18 @@ }, QStringList{ QStringLiteral("missing-only"), + QStringLiteral("mounted-only"), QStringLiteral("device-id") } }, Command{ QStringLiteral("devices"), i18n("List devices"), QStringList{}, - QStringList{QStringLiteral("missing-only")} + QStringList{ + QStringLiteral("missing-only"), + QStringLiteral("mounted-only") + } }, /*TODO: Command{ @@ -134,7 +138,7 @@ auto options = getOptions(c.name); const QString optionStr = options.isEmpty() ? QString() - : QStringLiteral(" [--%1]").arg(options.join(QLatin1Literal("] [--"))); + : QStringLiteral(" [--%1]").arg(options.join(QLatin1Literal(", --"))); QString argumentStr; if (!c.args.isEmpty() ) { @@ -147,7 +151,7 @@ .arg(argumentStr); const QString str = QStringLiteral("%1 %2") - .arg(commandStr, -58) + .arg(commandStr, -62) .arg(c.description); allowedcommands.append(str);