X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fschedulers%2Fplugins-check-scheduler.ts;h=7ff41e6394e152649f66796b6be395746bedfe63;hb=6f1b4fa417786c2015f16b435e872aa65378efd7;hp=9c60dbcd41c409c7e1e366f4f119ff924758dfdd;hpb=6702a1b2ccd666285dee9c72b5bace641d2fce8b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/schedulers/plugins-check-scheduler.ts b/server/lib/schedulers/plugins-check-scheduler.ts index 9c60dbcd4..7ff41e639 100644 --- a/server/lib/schedulers/plugins-check-scheduler.ts +++ b/server/lib/schedulers/plugins-check-scheduler.ts @@ -1,6 +1,5 @@ import { logger } from '../../helpers/logger' import { AbstractScheduler } from './abstract-scheduler' -import { retryTransactionWrapper } from '../../helpers/database-utils' import { SCHEDULER_INTERVALS_MS } from '../../initializers/constants' import { CONFIG } from '../../initializers/config' import { PluginModel } from '../../models/server/plugin' @@ -19,13 +18,13 @@ export class PluginsCheckScheduler extends AbstractScheduler { } protected async internalExecute () { - return retryTransactionWrapper(this.checkLatestPluginsVersion.bind(this)) + return this.checkLatestPluginsVersion() } private async checkLatestPluginsVersion () { if (CONFIG.PLUGINS.INDEX.ENABLED === false) return - logger.info('Checkin latest plugins version.') + logger.info('Checking latest plugins version.') const plugins = await PluginModel.listInstalled() @@ -39,19 +38,28 @@ export class PluginsCheckScheduler extends AbstractScheduler { } const npmNames = Object.keys(pluginIndex) - const results = await getLatestPluginsVersion(npmNames) - for (const result of results) { - const plugin = pluginIndex[result.npmName] - if (!result.latestVersion) continue + try { + const results = await getLatestPluginsVersion(npmNames) - if (plugin.latestVersion !== result.latestVersion && compareSemVer(plugin.latestVersion, result.latestVersion) < 0) { - plugin.latestVersion = result.latestVersion - await plugin.save() + for (const result of results) { + const plugin = pluginIndex[ result.npmName ] + if (!result.latestVersion) continue + + if ( + !plugin.latestVersion || + (plugin.latestVersion !== result.latestVersion && compareSemVer(plugin.latestVersion, result.latestVersion) < 0) + ) { + plugin.latestVersion = result.latestVersion + await plugin.save() + + logger.info('Plugin %s has a new latest version %s.', result.npmName, plugin.latestVersion) + } } + } catch (err) { + logger.error('Cannot get latest plugins version.', { npmNames, err }) } } - } static get Instance () {