feat: extensions check + resolver
This commit is contained in:
21
server/core/extensions.js
Normal file
21
server/core/extensions.js
Normal 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 ]`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user