const args = require('minimist')(process.argv);
var path = require('path');
var all_plugins = nv_plugin_list();
var setted_plugin_folders = get_option('_nv_selected_plugin_folders',[]);
if ( !Array.isArray(setted_plugin_folders) ) {
setted_plugin_folders = [];
delete_option('_nv_selected_plugin_folders');
console.log('要求被启用的插件数据记录错误')
}
// 记录已经启用的插件
global.nv_enabled_plugin_folders = [];
// 从所有插件中筛选出正常可启用的插件
var good_plugin_folders = all_plugins.filter(p=> !p.error).map(p=>p.folder);
// 挨个启用匹配到的插件
setted_plugin_folders.forEach(folder=>{
if ( good_plugin_folders.includes(folder) ) {
console.log(`加载插件:\x1B[36m${folder}\x1B[0m`)
try {
require( path.join(process.cwd(),`./nv-plugins/${folder}/function.js`) );
nv_enabled_plugin_folders.push(folder);
} catch(e) {
console.log(`\x1B[31m\x1B[1m插件错误:\x1B[0m`,e)
}
}
})
// 如果已启用的插件数量和要求启用的数量不匹配(说明有插件损坏),重新设置要求启用的插件(Docker中,正式环境才自动停用)
if(nv_enabled_plugin_folders.length !== setted_plugin_folders.length && args.docker=='true') {
set_option('_nv_selected_plugin_folders',nv_enabled_plugin_folders);
}