From 76fe17e39f28ce06c7cd6d8797953eacd21a85ea Mon Sep 17 00:00:00 2001 From: Gary Moon Date: Tue, 23 Feb 2016 13:05:56 -0500 Subject: [PATCH] make app data folder consistent per URL --- src/build/buildApp.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/build/buildApp.js b/src/build/buildApp.js index f2fb022..a27cedd 100644 --- a/src/build/buildApp.js +++ b/src/build/buildApp.js @@ -24,15 +24,15 @@ function buildApp(src, dest, options, callback) { } fs.writeFileSync(path.join(dest, '/nativefier.json'), JSON.stringify(appArgs)); - changeAppPackageJsonName(dest, appArgs.name); + changeAppPackageJsonName(dest, appArgs.name, appArgs.targetUrl); callback(); }); } -function changeAppPackageJsonName(appPath, name) { +function changeAppPackageJsonName(appPath, name, url) { const packageJsonPath = path.join(appPath, '/package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath)); - packageJson.name = normalizeAppName(name); + packageJson.name = normalizeAppName(name, url); fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson)); } @@ -55,9 +55,11 @@ function selectAppArgs(options) { }; } -function normalizeAppName(appName) { +function normalizeAppName(appName, url) { // use a simple 3 byte random string to prevent collision - const postFixHash = crypto.randomBytes(3).toString('hex'); + let hash = crypto.createHash('md5'); + hash.update(url); + const postFixHash = hash.digest('hex').substring(0, 6); const normalized = _.kebabCase(appName.toLowerCase()); return `${normalized}-nativefier-${postFixHash}`; }