From aca24fead8299939d54e196ba78a0ec17606eff7 Mon Sep 17 00:00:00 2001 From: DongHyun Song Date: Mon, 12 Apr 2021 16:33:52 +0900 Subject: [PATCH] [Service][appmanifest] Fix app id Making same app id by its URL, otherwise duplicate apps cane be created. Change-Id: I99cebbfff38c191364ab18f1d9cd8709fef108b0 Signed-off-by: DongHyun Song --- wrt_app/service/builtins/appmanifest_loader.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/wrt_app/service/builtins/appmanifest_loader.ts b/wrt_app/service/builtins/appmanifest_loader.ts index 3743501..7037b35 100644 --- a/wrt_app/service/builtins/appmanifest_loader.ts +++ b/wrt_app/service/builtins/appmanifest_loader.ts @@ -46,8 +46,8 @@ async function downloadIcon(iconSrc: string, iconFile: string) { }); } -function copyManifest(filePath: string, manifestData: string) { - fs.writeFileSync(filePath, manifestData); +function makeFileSync(file: string, data: string) { + fs.writeFileSync(file, data); } function concatWithBaseUrl(url: string, baseUrl: string) { @@ -95,28 +95,31 @@ function handleStartUrl(appName: string, manifestUrl: string, manifest: any) { let startUrl = concatWithBaseUrl(manifest['start_url'], manifestUrl); manifest['start_url'] = startUrl; manifestFile = `${baseWorkingDir}/${appName}/appmanifest.json`; - copyManifest(manifestFile, JSON.stringify(manifest)); + makeFileSync(manifestFile, JSON.stringify(manifest)); manifestFile = `${downloadVirtualDir}/${appName}/appmanifest.json`; refCount++; return startUrl; } -function makeRandomId() { - return Math.random().toString(36).substring(2, 12); +function makeAppId(startUrl: string) { + let id = Buffer.from(startUrl).toString('base64'); + id = id.replace(/=/i, ''); + console.log(`id : ${id}`); + return id.substr(2, 12); } function convertConfigXml(appName: string, startUrl: string) { convertedConfigXml = `${baseWorkingDir}/${appName}/config.xml`; - let id = makeRandomId(); + let id = makeAppId(startUrl); let configXml = ``; configXml += ``; - configXml += ``; + configXml += ``; configXml += `` configXml += ``; configXml += `${appName}`; configXml += ``; configXml += ``; - copyManifest(convertedConfigXml, configXml); + makeFileSync(convertedConfigXml, configXml); convertedConfigXml = `${downloadVirtualDir}/${appName}/config.xml`; refCount++; } -- 2.7.4