UNPKG

1.33 kBJavaScriptView Raw
1/**
2 * XadillaX created at 2016-04-19 14:25:35 With ♥
3 *
4 * Copyright (c) 2016 Souche.com, all rights
5 * reserved.
6 */
7"use strict";
8
9var fs = require("fs");
10var path = require("path");
11
12var _ = require("lodash");
13
14var configDir = process.env.NODE_CONFIG_DIR || path.join(require.main.filename, "..", "/config");
15var currentDir = path.join(__dirname, "config");
16process.env.NODE_CONFIG_DIR = currentDir;
17
18var dirs;
19try {
20 dirs = fs.readdirSync(configDir);
21} catch(e) {
22 // ...
23}
24dirs = dirs || [];
25
26var template = fs.readFileSync(__dirname + "/config/_template", { encoding: "utf8" });
27
28for(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
49module.exports = require("config");
50
51function copy(path, type) {
52 var js = _.template(template)({ path: path, type: type });
53 fs.writeFileSync(__dirname + "/config/" + type + ".js", js, { encoding: "utf8" });
54}