Skip to content

Commit 16eb002

Browse files
get specific release info (#687)
1 parent d30754d commit 16eb002

File tree

11 files changed

+77
-55
lines changed

11 files changed

+77
-55
lines changed

package-lock.json

Lines changed: 18 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nw-builder",
3-
"version": "4.0.0-rc.8",
3+
"version": "4.0.0",
44
"description": "Build NW.js desktop applications for Mac, Windows and Linux.",
55
"keywords": [
66
"NW.js",
@@ -25,9 +25,7 @@
2525
"format": "prettier --write \"**/*.{js,md}\"",
2626
"lint": "eslint ./src",
2727
"docs": "jsdoc ./src/nwbuild.js -d docs",
28-
"demo:run": "cd ./test/demo && node run.js",
29-
"demo:bld": "cd ./test/demo && node bld.js",
30-
"demo:cli": "cd ./test/demo && nwbuild ./nwapp --version=0.69.1 --flavour=sdk --platform=linux --arch=x64 --outDir=./build"
28+
"demo": "cd ./test/demo && nwbuild ./nwapp --version=0.69.1 --flavour=sdk --platform=linux --arch=x64 --outDir=./build"
3129
},
3230
"devDependencies": {
3331
"eslint": "^8.25.0",

src/bld/osxCfg.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import fs from "node:fs/promises";
22

33
import plist from "plist";
44

5-
const setOsxConfig = async (pkg, outDir) => {
5+
const setOsxConfig = async (pkg, outDir, releaseInfo) => {
66
// Rename CFBundleDisplayName in Contents/Info.plist
77
let contents_info_plist_path = `${outDir}/nwjs.app/Contents/Info.plist`;
88
let contents_info_plist_json = plist.parse(
@@ -15,17 +15,16 @@ const setOsxConfig = async (pkg, outDir) => {
1515
// Rename CFBundleDisplayName in Contents/Resources/en.lproj/InfoPlist.strings
1616

1717
// Rename Helper apps in Contents/Framework.framework/Versions/n.n.n.n/Helpers
18-
let chromium_version = "107.0.5304.88";
1918
let helper_app_path_alerts = (name = "nwjs") =>
20-
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${chromium_version}/Helpers/${name} Helper (Alerts).app`;
19+
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${releaseInfo.components.chromium}/Helpers/${name} Helper (Alerts).app`;
2120
let helper_app_path_gpu = (name = "nwjs") =>
22-
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${chromium_version}/Helpers/${name} Helper (GPU).app`;
21+
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${releaseInfo.components.chromium}/Helpers/${name} Helper (GPU).app`;
2322
let helper_app_path_plugin = (name = "nwjs") =>
24-
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${chromium_version}/Helpers/${name} Helper (Plugin).app`;
23+
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${releaseInfo.components.chromium}/Helpers/${name} Helper (Plugin).app`;
2524
let helper_app_path_renderer = (name = "nwjs") =>
26-
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${chromium_version}/Helpers/${name} Helper (Renderer).app`;
25+
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${releaseInfo.components.chromium}/Helpers/${name} Helper (Renderer).app`;
2726
let helper_app_path = (name = "nwjs") =>
28-
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${chromium_version}/Helpers/${name} Helper.app`;
27+
`${outDir}/nwjs.app/Contents/Frameworks/nwjs Framework.framework/Versions/${releaseInfo.components.chromium}/Helpers/${name} Helper.app`;
2928
await fs.rename(helper_app_path_alerts(), helper_app_path_alerts(pkg.name));
3029
await fs.rename(helper_app_path_gpu(), helper_app_path_gpu(pkg.name));
3130
await fs.rename(helper_app_path_plugin(), helper_app_path_plugin(pkg.name));

src/bld/package.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { setLinuxConfig } from "./linuxCfg.js";
55
import { setOsxConfig } from "./osxCfg.js";
66
import { setWinConfig } from "./winCfg.js";
77

8-
const packager = async (srcDir, nwDir, outDir, platform, zip) => {
8+
const packager = async (srcDir, nwDir, outDir, platform, zip, releaseInfo) => {
99
fs.rmSync(outDir, { force: true, recursive: true });
1010
fs.cpSync(nwDir, outDir, { recursive: true });
1111
fs.cpSync(
@@ -33,7 +33,7 @@ const packager = async (srcDir, nwDir, outDir, platform, zip) => {
3333
setWinConfig(pkg, outDir);
3434
break;
3535
case "osx":
36-
setOsxConfig(pkg, outDir);
36+
setOsxConfig(pkg, outDir, releaseInfo);
3737
break;
3838
default:
3939
break;

src/cli.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import yargs from "yargs/yargs";
44
import { hideBin } from "yargs/helpers";
55

6-
import nwbuild from "./nwbuild.js";
6+
import { nwbuild } from "./nwbuild.js";
77

88
const cli = yargs(hideBin(process.argv))
99
.version(false)

src/get/getManifest.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import https from "node:https";
2+
3+
export const getManifest = (manifestUrl) => {
4+
let chunks = undefined;
5+
6+
return new Promise((resolve, reject) => {
7+
https.get(manifestUrl, (res) => {
8+
res.on("data", (chunk) => {
9+
chunks += chunk;
10+
});
11+
12+
res.on("error", (e) => {
13+
reject(e);
14+
});
15+
16+
res.on("end", () => {
17+
resolve(chunks);
18+
});
19+
});
20+
});
21+
};

src/get/getReleaseInfo.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import fs from "node:fs/promises";
2+
3+
import { getManifest } from "./getManifest.js";
4+
5+
export const getReleaseInfo = async (version, cacheDir, manifestUrl) => {
6+
let releaseData = undefined;
7+
try {
8+
await fs.access(`${cacheDir}/manifest.json`);
9+
console.log(`[ INFO ] Manifest file already exists locally under ${cacheDir}`)
10+
} catch(e) {
11+
console.log(`[ ERROR ] Manifest file does not exist locally`);
12+
console.log(`[ INFO ] Downloading latest manifest file under ${cacheDir}`);
13+
const data = await getManifest(manifestUrl);
14+
await fs.writeFile(`${cacheDir}/manifest.json`, data.slice(9));
15+
} finally {
16+
let manifestData = await fs.readFile(`${cacheDir}/manifest.json`);
17+
let manifestJson = JSON.parse(manifestData);
18+
releaseData = manifestJson.versions.find(release => release.version === `v${version}`);
19+
}
20+
return releaseData;
21+
};

src/nwbuild.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import fs from "node:fs/promises";
22
import { decompress } from "./get/decompress.js";
33
import { develop } from "./run/develop.js";
44
import { download } from "./get/download.js";
5+
import { getReleaseInfo } from "./get/getReleaseInfo.js";
56
import { remove } from "./get/remove.js";
67
import { packager } from "./bld/package.js";
78

@@ -32,7 +33,7 @@ const nwbuild = async ({
3233
outDir,
3334
// flags
3435
downloadUrl = "https://dl.nwjs.io",
35-
// manifestUrl = "https://nwjs.io/versions",
36+
manifestUrl = "https://nwjs.io/versions",
3637
noCache = false,
3738
zip = false,
3839
run = false,
@@ -60,6 +61,8 @@ const nwbuild = async ({
6061
outDir = pkgData.nwbuild.outDir ?? outDir;
6162
}
6263
}
64+
65+
let releaseInfo = await getReleaseInfo(version, cacheDir, manifestUrl);
6366
let nwDir = `${cacheDir}/nwjs${
6467
flavour === "sdk" ? "-sdk" : ""
6568
}-v${version}-${platform}-${arch}`;
@@ -82,7 +85,7 @@ const nwbuild = async ({
8285
if (run === true) {
8386
await develop(srcDir, nwDir, platform);
8487
} else {
85-
await packager(srcDir, nwDir, outDir, platform, zip);
88+
await packager(srcDir, nwDir, outDir, platform, zip, releaseInfo);
8689
}
8790
};
8891

test/demo/bld.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

test/demo/nwapp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
"platform": "osx",
1010
"arch": "x64",
1111
"outDir": "./build",
12-
"run": true
12+
"run": false
1313
}
1414
}

0 commit comments

Comments
 (0)