app-backend: update meta tag injection to be able to update existing tag

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2024-04-09 12:20:41 +02:00
parent f9ad268ff2
commit 52d948d890
+17 -14
View File
@@ -257,20 +257,23 @@ async function injectAppMode(options: {
rootDir: string;
}) {
const { appMode, rootDir } = options;
const originalIndexHtmlContent = await fs.readFile(
resolvePath(rootDir, 'index.html'),
'utf8',
);
if (originalIndexHtmlContent.includes('backstage-app-mode')) return;
const modifiedIndexHtmlContent = originalIndexHtmlContent.replace(
/<head>/,
`<head><meta name="backstage-app-mode" content="${appMode}" />`,
);
await fs.writeFile(
resolvePath(rootDir, 'index.html'),
modifiedIndexHtmlContent,
'utf8',
);
const content = await fs.readFile(resolvePath(rootDir, 'index.html'), 'utf8');
const metaTag = `<meta name="backstage-app-mode" content="${appMode}">`;
let newContent;
if (content.includes('backstage-app-mode')) {
console.log(`DEBUG: REPLACE`, metaTag);
newContent = content.replace(
/<meta name="backstage-app-mode" content="[^"]+">/,
metaTag,
);
console.log(`DEBUG: newContent=`, newContent);
} else {
newContent = content.replace(/<head>/, `<head>${metaTag}`);
}
await fs.writeFile(resolvePath(rootDir, 'index.html'), newContent, 'utf8');
}
async function createEntryPointRouter({