feat: extensions check + resolver

This commit is contained in:
NGPixel
2020-05-18 00:45:51 -04:00
committed by Nicolas Giard
parent abc9e4e1d4
commit e1382771cf
14 changed files with 200 additions and 258 deletions

21
server/core/extensions.js Normal file
View File

@@ -0,0 +1,21 @@
const fs = require('fs-extra')
const path = require('path')
/* global WIKI */
module.exports = {
ext: {},
async init () {
const extDirs = await fs.readdir(path.join(WIKI.SERVERPATH, 'modules/extensions'))
WIKI.logger.info(`Checking for installed optional extensions...`)
for (let dir of extDirs) {
WIKI.extensions.ext[dir] = require(path.join(WIKI.SERVERPATH, 'modules/extensions', dir, 'ext.js'))
const isInstalled = await WIKI.extensions.ext[dir].check()
if (isInstalled) {
WIKI.logger.info(`Optional extension ${dir} is installed. [ OK ]`)
} else {
WIKI.logger.info(`Optional extension ${dir} was not found on this system. [ SKIPPED ]`)
}
}
}
}

View File

@@ -40,6 +40,7 @@ module.exports = {
inbound: new EventEmitter(),
outbound: new EventEmitter()
}
WIKI.extensions = require('./extensions')
} catch (err) {
WIKI.logger.error(err)
process.exit(1)
@@ -76,6 +77,8 @@ module.exports = {
await WIKI.models.searchEngines.refreshSearchEnginesFromDisk()
await WIKI.models.storage.refreshTargetsFromDisk()
await WIKI.extensions.init()
await WIKI.auth.activateStrategies()
await WIKI.models.commentProviders.initProvider()
await WIKI.models.searchEngines.initEngine()