From 36782fb4feb83d31f57567f12eb175325608ee7f Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Tue, 12 Apr 2022 19:44:29 +0530 Subject: [PATCH] Use unique filenames Otherwise newly produced svgs will replace other svgs produced earlier in the build. --- scripts/postcss/svg-colorizer.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/postcss/svg-colorizer.js b/scripts/postcss/svg-colorizer.js index 7d527ddb..a3110693 100644 --- a/scripts/postcss/svg-colorizer.js +++ b/scripts/postcss/svg-colorizer.js @@ -16,6 +16,7 @@ limitations under the License. const fs = require("fs"); const path = require("path"); +const {randomUUID} = require('crypto'); /** * Builds a new svg with the colors replaced and returns its location. * @param {string} svgLocation The location of the input svg file @@ -30,6 +31,8 @@ module.exports.buildColorizedSVG = function (svgLocation, primaryColor, secondar throw new Error("svg-colorizer made no color replacements! The input svg should only contain colors #ff00ff (primary, case-sensitive) and #00ffff (secondary, case-sensitive)."); } const fileName = svgLocation.match(/.+\/(.+\.svg)/)[1]; + // give unique names so that this svg does not replace other versions of the same svg + const outputName = `${fileName.substring(0, fileName.length - 4)}-${randomUUID()}.svg`; const outputPath = path.resolve(__dirname, "../../.tmp"); try { fs.mkdirSync(outputPath); @@ -39,7 +42,7 @@ module.exports.buildColorizedSVG = function (svgLocation, primaryColor, secondar throw e; } } - const outputFile = `${outputPath}/${fileName}`; + const outputFile = `${outputPath}/${outputName}`; fs.writeFileSync(outputFile, coloredSVGCode); return outputFile; }