* Added recursive game scan and only using game directories

* Added recursion depth limit to scan directories

* Added recursive search by ID in cli mode

* Added recursive search to pkg installing
This commit is contained in:
pdaloxd 2025-01-31 09:50:02 +01:00 committed by GitHub
parent 8057ed408c
commit f3c33b29dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 117 additions and 20 deletions

View file

@ -4,6 +4,7 @@
#pragma once
#include <filesystem>
#include <optional>
#include <vector>
#ifdef ENABLE_QT_GUI
@ -115,4 +116,18 @@ void PathToQString(QString& result, const std::filesystem::path& path);
[[nodiscard]] std::filesystem::path PathFromQString(const QString& path);
#endif
/**
* Recursively searches for a game directory by its ID.
* Limits search depth to prevent excessive filesystem traversal.
*
* @param dir Base directory to start the search from
* @param game_id The game ID to search for
* @param max_depth Maximum directory depth to search
*
* @returns Path to eboot.bin if found, std::nullopt otherwise
*/
[[nodiscard]] std::optional<std::filesystem::path> FindGameByID(const std::filesystem::path& dir,
const std::string& game_id,
int max_depth);
} // namespace Common::FS