| 249 | } |
| 250 | |
| 251 | void do_task(uint32_t index, PrePopToken *tokens) { |
| 252 | Error &err = tokens[index].error; |
| 253 | auto &token = tokens[index]; |
| 254 | // Use the new workflow: get ReleaseInfo and populate PluginVersion |
| 255 | ReleaseInfo release_info = token.source->get_release_info(token.plugin_name, token.version.first, token.version.second, err); |
| 256 | ERR_FAIL_COND_MSG(err != OK, vformat("Failed to get release info for plugin %s primary id %d secondary id %d", token.plugin_name, token.version.first, token.version.second)); |
| 257 | if (release_info.is_valid()) { |
| 258 | String cache_key = release_info.get_cache_key(); |
| 259 | PluginVersion cached_version = PluginManager::get_cached_plugin_version(cache_key); |
| 260 | bool valid = cached_version.is_valid(); |
| 261 | if (valid && cached_version.release_info != release_info) { |
| 262 | print_line("Cached version does not match release info for plugin " + token.plugin_name + " version: " + release_info.version); |
| 263 | valid = false; |
| 264 | } |
| 265 | if (!valid) { |
| 266 | PluginVersion plugin_version = PluginManager::populate_plugin_version_from_release(release_info, err); |
| 267 | ERR_FAIL_COND_MSG(err != OK, vformat("Failed to populate plugin version for plugin %s primary id %d secondary id %d", token.plugin_name, token.version.first, token.version.second)); |
| 268 | if (plugin_version.is_valid()) { |
| 269 | PluginManager::cache_plugin_version(cache_key, plugin_version); |
| 270 | } |
| 271 | } |
| 272 | } |
| 273 | } |
| 274 | }; |
| 275 | |
| 276 | Error PluginManager::prepop_cache(const Vector<String> &plugin_names) { |
no test coverage detected