-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwriteFiles.js
30 lines (21 loc) · 1016 Bytes
/
writeFiles.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* *************************************
Generate Files
- Takes the file structure and files and makes real files/folders on the FS
**************************************** */
var Path = require('path');
var mkdirp = require("mkdirp");
var fs = require('fs-extra');
module.exports = function(fileStructure, meta) {
// Generate folders
fileStructure.filter((entity) => !entity.content).forEach((folderEntity) => {
var entityFolderPath = folderEntity.path.join("/");
mkdirp.sync(Path.normalize(meta.topDirPath + "/" + entityFolderPath));
});
// Generate files (mkdirp'ing folders in case they don't exist)
fileStructure.filter((entity) => entity.content).forEach((entity) => {
var entityFolderPath = entity.path.slice(0, entity.path.length - 1).join("/");
var entityFilePath = entity.path.join("/");
mkdirp.sync(Path.normalize(meta.topDirPath + "/" + entityFolderPath));
fs.writeFileSync(Path.normalize(meta.topDirPath + "/" + entityFilePath), entity.content);
});
};