Parse "tokens_gdrive.json" -> provider="gdrive", account from path
| 89 | |
| 90 | // Parse "tokens_gdrive.json" -> provider="gdrive", account from path |
| 91 | static bool ParseTokenPath(const std::string& path, std::string& provider, std::string& account) { |
| 92 | auto filename = std::filesystem::path(path).stem().string(); |
| 93 | auto sep = filename.find('_'); |
| 94 | if (sep == std::string::npos) return false; |
| 95 | provider = filename.substr(0, sep); |
| 96 | account = filename.substr(sep + 1); |
| 97 | return !provider.empty() && !account.empty(); |
| 98 | } |
| 99 | |
| 100 | static std::string ReadTokenFromSecretService(const std::string& provider, const std::string& account) { |
| 101 | std::call_once(g_secretInitOnce, InitSecretService); |