1 | var fs = require('fs');
|
2 | var conf = require('../../../constants.js');
|
3 |
|
4 | function find_extensions(folder, ext, ret)
|
5 | {
|
6 | try {
|
7 | fs.accessSync(folder, fs.constants.R_OK);
|
8 | } catch (err) {
|
9 | return;
|
10 | }
|
11 | if(fs.statSync(folder).isDirectory() && folder.indexOf('node_modules') == -1 && (fs.statSync(folder)["mode"] & 4))
|
12 | {
|
13 | fs.readdirSync(folder).forEach(file => {
|
14 | var tmp;
|
15 | if(Number.parseInt(folder.lastIndexOf('/') + 1) === folder.length)
|
16 | tmp = folder + file;
|
17 | else
|
18 | tmp = folder + '/' + file;
|
19 | if(fs.statSync(tmp).isDirectory())
|
20 | find_extensions(tmp, ext, ret);
|
21 | else
|
22 | {
|
23 | var p = true;
|
24 | for(var i = 0; i < ext.length;i++)
|
25 | if(ext[i].test(file))
|
26 | p = false;
|
27 | if(p)
|
28 | ret.push(folder + '/' + file);
|
29 | }
|
30 | });
|
31 | }
|
32 | }
|
33 |
|
34 | module.exports.make_available_extension = function make_available_extension(opts, ret)
|
35 | {
|
36 | if(typeof opts == 'object' && typeof ret == 'object')
|
37 | {
|
38 | var mas = opts.ext.split(',');
|
39 | for(var i = 0;i < mas.length;i++)
|
40 | mas[i] = '.' + mas[i];
|
41 | var res = [];
|
42 | for(var i = 0;i < mas.length;i++)
|
43 | res[i] = new RegExp(mas[i] + '$');
|
44 | find_extensions(process.cwd(), res, ret);
|
45 | }
|
46 | }
|