UNPKG

issue

Version:

Command line tool for displaying issues using the issuemd library

67 lines (44 loc) 2.07 kB
'use strict'; ! function () { module.exports = function (helper) { var path = require('path'), fs = require('fs'); var _ = require('underscore'); var config = helper.config, pluginDirs = [ path.join(__dirname, '..', 'plugins'), path.join(__dirname, '..', '..') ].concat(config['plugin-dir'] ? [config['plugin-dir']] : []).map(function (pluginDir) { return path.resolve(pluginDir) + path.sep; }); var plugins = { init: require('./issue-init.js')(helper) }; _.each(pluginDirs, function (pluginDir) { if (helper.fileExists(pluginDir) && fs.lstatSync(pluginDir).isDirectory()) { // enable all plugins by default _.each(fs.readdirSync(pluginDir), function (projectName) { var value, packageJson; if (/^issue-plugin-.+/.test(projectName)) { value = projectName.match(/^issue-plugin-(.+)/)[1]; config.plugins = config.plugins || {}; if (fs.lstatSync(pluginDir + projectName).isDirectory()) { config.plugins[value] = config.plugins[value] || {}; if (typeof config.plugins[value].enabled === 'undefined') { config.plugins[value].enabled = true; } if (!!config.plugins[value].enabled) { packageJson = require(pluginDir + projectName + path.sep + 'package.json'); plugins[value] = require(pluginDir + projectName + path.sep + packageJson.main)(helper); } else { plugins[value] = false; } } } }); } }); return plugins; }; }.call(null);