/* 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); } }); } }