From 4a9dab46f0821a89646177a50f340fde393dc57d Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Mon, 17 May 2021 10:46:14 +0200 Subject: [PATCH] fix(build): do not utf8-read/write images MONGOSH-763 --- .../build/src/packaging/package/helpers.ts | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/build/src/packaging/package/helpers.ts b/packages/build/src/packaging/package/helpers.ts index bec8ba5610..ede417ffa8 100644 --- a/packages/build/src/packaging/package/helpers.ts +++ b/packages/build/src/packaging/package/helpers.ts @@ -61,15 +61,19 @@ export async function generateDirFromTemplate(sourceDir: string, interpolations: await copyDirAndApplyTemplates(sourceFile, targetFile); } else { const sourceText = await fs.readFile(sourceFile, 'utf8'); - const interpolatedText = sourceText.replace( - /\{\{(\w+)\}\}/g, - (_match, identifier) => { - if (!(identifier in interpolations)) { - throw new Error(`Need ${identifier} for replacement in ${sourceFile}`); - } - return interpolations[identifier]; - }); - await fs.writeFile(targetFile, interpolatedText); + if (!sourceText.includes('\ufffd')) { // This is valid UTF-8, i.e. a text file + const interpolatedText = sourceText.replace( + /\{\{(\w+)\}\}/g, + (_match, identifier) => { + if (!(identifier in interpolations)) { + throw new Error(`Need ${identifier} for replacement in ${sourceFile}`); + } + return interpolations[identifier]; + }); + await fs.writeFile(targetFile, interpolatedText); + } else { + await fs.copyFile(sourceFile, targetFile); + } } } }