48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
/* eslint-disable no-commonjs */
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
const sourcePath = path.join('node_modules', '@gitlab-org/gitlab-svgs', 'dist');
|
|
const sourcePathIllustrations = path.join('node_modules', '@gitlab-org/gitlab-svgs', 'dist', 'illustrations');
|
|
const destPath = path.normalize(path.join('app', 'assets', 'images'));
|
|
|
|
// Actual Task copying the 2 files + all illustrations
|
|
copyFileSync(path.join(sourcePath, 'icons.svg'), destPath);
|
|
copyFileSync(path.join(sourcePath, 'icons.json'), destPath);
|
|
copyFolderRecursiveSync(sourcePathIllustrations, destPath);
|
|
|
|
// Helper Functions
|
|
function copyFileSync(source, target) {
|
|
var 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));
|
|
}
|
|
}
|
|
console.log(`Copy SVG File : ${targetFile}`);
|
|
fs.writeFileSync(targetFile, fs.readFileSync(source));
|
|
}
|
|
|
|
function copyFolderRecursiveSync(source, target) {
|
|
var files = [];
|
|
|
|
//check if folder needs to be created or integrated
|
|
var 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) {
|
|
var curSource = path.join(source, file);
|
|
if (fs.lstatSync(curSource).isDirectory()) {
|
|
copyFolderRecursiveSync(curSource, targetFolder);
|
|
} else {
|
|
copyFileSync(curSource, targetFolder);
|
|
}
|
|
});
|
|
}
|
|
}
|