1 | var fs = require('fs');
|
2 | var source = require('./stucture.json');
|
3 | var package = require('./package.json');
|
4 |
|
5 | module.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 | })();
|