1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | "use strict";
|
8 |
|
9 | var fs = require("fs");
|
10 | var path = require("path");
|
11 |
|
12 | var _ = require("lodash");
|
13 |
|
14 | var configDir = process.env.NODE_CONFIG_DIR || path.join(require.main.filename, "..", "/config");
|
15 | var currentDir = path.join(__dirname, "config");
|
16 | process.env.NODE_CONFIG_DIR = currentDir;
|
17 |
|
18 | var dirs;
|
19 | try {
|
20 | dirs = fs.readdirSync(configDir);
|
21 | } catch(e) {
|
22 |
|
23 | }
|
24 | dirs = dirs || [];
|
25 |
|
26 | var template = fs.readFileSync(__dirname + "/config/_template", { encoding: "utf8" });
|
27 |
|
28 | for(var i = 0; i < dirs.length; i++) {
|
29 | var stat;
|
30 | try {
|
31 | stat = fs.statSync(path.join(configDir, dirs[i]));
|
32 | } catch(e) {
|
33 | stat = null;
|
34 | }
|
35 |
|
36 | if(!stat) continue;
|
37 |
|
38 | if(stat.isDirectory()) {
|
39 | copy(configDir, dirs[i]);
|
40 | } else if(stat.isFile()) {
|
41 | if(dirs[i].endsWith(".js")) {
|
42 | copy(configDir, dirs[i].substr(dirs[i].length - 3));
|
43 | } else if(dirs[i].endsWith(".json")) {
|
44 | copy(configDir, dirs[i].substr(dirs[i].length - 5));
|
45 | }
|
46 | }
|
47 | }
|
48 |
|
49 | module.exports = require("config");
|
50 |
|
51 | function copy(path, type) {
|
52 | var js = _.template(template)({ path: path, type: type });
|
53 | fs.writeFileSync(__dirname + "/config/" + type + ".js", js, { encoding: "utf8" });
|
54 | }
|