From 4ba9d17e67de5d52c8c0ff40d1449ea345b93dfa Mon Sep 17 00:00:00 2001 From: jtPox Date: Fri, 22 Jun 2018 22:05:55 +0800 Subject: [PATCH] Plugins will only be ran when included in .env --- .env | 5 +++++ app/ribbon.js | 12 ++++++++---- ribbon.js | 9 +++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.env b/.env index 44f2944..563bda7 100644 --- a/.env +++ b/.env @@ -1,6 +1,7 @@ PORT=8080 SECURE_PORT=8081 +#Site Details SITE_NAME=ribbon SITE_DOMAIN= SITE_THEME=flac @@ -8,6 +9,7 @@ ADMIN_THEME=arabesque/dist HASH_SALT_ROUNDS=10 +#Database Information DB_HOST=localhost DB_PORT=27017 DB_USER= @@ -15,11 +17,14 @@ DB_PASSWORD= DB_AUTH=admin DB_NAME=ribbon +#Analytics GOOGLE_TRACKING_ID= TWITTER_USERNAME= +#Certificates. Not recommended to use this. Use a proxy server instead (E.g. nginx). SECURE_PRIVATE_KEY= SECURE_PRIVATE_CERT= +#Seperate with comments (E.g. example-plugin,plugin-2) PLUGINS=example-plugin \ No newline at end of file diff --git a/app/ribbon.js b/app/ribbon.js index 88d5752..f9135ee 100644 --- a/app/ribbon.js +++ b/app/ribbon.js @@ -151,13 +151,17 @@ class Ribbon { */ load_plugins() { const plugins = this.get_plugin_directories(); + const enabled = process.env.plugins.split(','); + plugins.forEach((file) => { + // Retrieve package.json. /* eslint-disable */ - require(`./plugin/${file}`)(this.app, this.log); // eslint-disable-line global-require - - //Retrieve package.json. const plugin_info = require(`./plugin/${file}/package.json`); - this.log.info(`Plugin - ${plugin_info.name} (${plugin_info.version})`); + if (enabled.indexOf(plugin_info.name) !== -1) { + require(`./plugin/${file}`)(this.app, this.log); // eslint-disable-line global-require + + this.log.plugin(`${plugin_info.name} (${plugin_info.version})`); + } /* eslint-enable */ }); } diff --git a/ribbon.js b/ribbon.js index 82d9e89..e0f15cb 100644 --- a/ribbon.js +++ b/ribbon.js @@ -33,5 +33,14 @@ const ribbon = new Ribbon( new transports.Console(), new transports.File({ filename: 'combined.log' }), ], + levels: { + error: 0, + warn: 1, + info: 2, + plugin: 2, + verbose: 3, + debug: 4, + silly: 5, + }, }), );