UNPKG

2.65 kBJavaScriptView Raw
1var fs = require('fs');
2var source = require('./stucture.json');
3var package = require('./package.json');
4
5module.exports = (function() {
6
7
8 (function basicInit() {
9
10 require('child_process').exec('npm init --yes', function(error, out) {
11 var pathToPackage = __dirname + '/package.json',
12 read,
13 json;
14
15 if (!error) {
16 try {
17 read = fs.readFileSync("package.json", 'utf8');
18 json = JSON.parse(read);
19 json.dependencies = package.dependencies;
20 json.scripts = package.scripts;
21 fs.writeFileSync("package.json", JSON.stringify(json, null, 4))
22
23 if (fs.existsSync(__dirname + '/source/gitignore')) {
24 fs.renameSync(__dirname + '/source/gitignore', __dirname + '/source/.gitignore')
25 }
26
27 if (fs.existsSync(__dirname + '/source/babelrc')) {
28 fs.renameSync(__dirname + '/source/babelrc', __dirname + '/source/.babelrc')
29 }
30 } catch(e){
31 console.log(e);
32 }
33 }
34 createTree(source, "")
35 });
36
37 }())
38
39 function createTree(tree, folder) {
40
41 for (var mark in tree) {
42
43 if (typeof tree[mark] == 'object') {
44 if (!fs.existsSync(folder + mark)) {
45 fs.mkdirSync(folder + mark);
46 }
47 folder += mark + "/";
48 createTree(tree[mark], folder);
49 folder = "public/";
50
51 } else {
52 if (tree[mark] == "") {
53 if (!fs.existsSync(folder + mark)) {
54 fs.mkdirSync(folder + mark);
55 }
56 } else if (!isNaN(mark)) {
57 fs.createReadStream(__dirname + '/source/' + tree[mark]).pipe(fs.createWriteStream(folder + tree[mark]));
58 } else if (mark == "$") {
59 cycleCopy(tree[mark], "")
60 } else {
61 if (!fs.existsSync(folder + mark)) {
62 fs.mkdirSync(folder + mark);
63
64 cycleCopy(tree[mark], folder + mark + "/")
65
66 }
67 }
68 }
69
70 }
71
72 }
73
74 function cycleCopy(tree, folder) {
75 var listFiles = tree.split(', ');
76 for (var i = listFiles.length - 1; i >= 0; i--) {
77 fs.createReadStream(__dirname + '/source/' + listFiles[i]).pipe(fs.createWriteStream(folder + listFiles[i]));
78
79 }
80 }
81
82})();