From e78353939ff7073cf4970797b06760f3dbe4be91 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 29 Oct 2024 12:02:28 +0800 Subject: [PATCH] Directly bundle macOS vfs logs within standard debug archive Signed-off-by: Claudio Cambra --- src/gui/generalsettings.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 8653f433f6..e2822024ff 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -13,6 +13,7 @@ */ #include "generalsettings.h" +#include "macOS/fileprovider.h" #include "ui_generalsettings.h" #include "theme.h" @@ -31,6 +32,10 @@ #endif #endif +#ifdef BUILD_FILE_PROVIDER_MODULE +#include "macOS/fileprovidersettingscontroller.h" +#endif + #include "ignorelisteditor.h" #include "common/utility.h" #include "logger.h" @@ -113,6 +118,23 @@ QVector createDebugArchiveFileList() std::copy(std::cbegin(newEntries), std::cend(newEntries), std::back_inserter(list)); }); +#ifdef BUILD_FILE_PROVIDER_MODULE + + const auto fileProvider = OCC::Mac::FileProvider::instance(); + if (fileProvider && fileProvider->fileProviderAvailable()) { + const auto tempDir = QTemporaryDir(); + const auto xpc = fileProvider->xpc(); + const auto vfsAccounts = OCC::Mac::FileProviderSettingsController::instance()->vfsEnabledAccounts(); + for (const auto &accountUserIdAtHost : vfsAccounts) { + const auto vfsLogFilename = QStringLiteral("macOS_vfs_%1.log").arg(accountUserIdAtHost); + const auto vfsLogPath = tempDir.filePath(vfsLogFilename); + xpc->createDebugArchiveForExtension(accountUserIdAtHost, vfsLogPath); + list.append(fileInfoToZipEntry(QFileInfo(vfsLogPath))); + } + } + +#endif + return list; }