@dotgov/core
Version:
DGS core.
49 lines (41 loc) • 1.36 kB
JavaScript
const path = require('path');
const fs = require('fs');
function copyFileSync(source, target) {
let targetFile = target;
// If target is a directory a new file with the same name will be created
if (fs.existsSync(target)) {
if (fs.lstatSync(target).isDirectory()) {
targetFile = path.join(target, path.basename(source));
}
}
fs.writeFileSync(targetFile, fs.readFileSync(source));
};
function copyFolderRecursiveSync(source, target, blacklist) {
let files = [];
// Check if folder needs to be created or integrated
let targetFolder = path.join(target, path.basename(source));
if (!fs.existsSync(targetFolder)) {
fs.mkdirSync(targetFolder);
}
// Copy
if (fs.lstatSync(source).isDirectory()) {
files = fs.readdirSync(source);
files.forEach(function (file) {
if (blacklist.indexOf(file) !== -1) {
return;
}
let curSource = path.join(source, file);
if (fs.lstatSync(curSource).isDirectory()) {
copyFolderRecursiveSync(curSource, targetFolder, blacklist);
} else {
copyFileSync(curSource, targetFolder);
}
});
}
};
const moveAssets = (input, output, blacklist = []) => {
if (fs.existsSync(input)) {
copyFolderRecursiveSync(input, output, blacklist);
}
};
module.exports = { moveAssets };