Skip to content

Commit 1cfdb28

Browse files
MarshallOfSoundrvagg
authored andcommitted
lib: reintroduce support for iojs file naming for releases >= 1 && < 4
For Electron 3 PR-URL: #1777 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Rod Vagg <rod@vagg.org>
1 parent e386172 commit 1cfdb28

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

lib/process-release.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
1717
, versionSemver = semver.parse(version)
1818
, overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl
1919
, isDefaultVersion
20+
, isNamedForLegacyIojs
2021
, name
2122
, distBaseUrl
2223
, baseUrl
@@ -41,11 +42,17 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
4142

4243
if (defaultRelease) {
4344
// v3 onward, has process.release
44-
name = defaultRelease.name
45+
name = defaultRelease.name.replace(/io\.js/, 'iojs') // remove the '.' for directory naming purposes
4546
} else {
4647
// old node or alternative --target=
4748
// semver.satisfies() doesn't like prerelease tags so test major directly
48-
name = 'node'
49+
isNamedForLegacyIojs = versionSemver.major >= 1 && versionSemver.major < 4
50+
// isNamedForLegacyIojs is required to support Electron < 4 (in particular Electron 3)
51+
// as previously this logic was used to ensure "iojs" was used to download iojs releases
52+
// and "node" for node releases. Unfortunately the logic was broad enough that electron@3
53+
// published release assets as "iojs" so that the node-gyp logic worked. Once Electron@3 has
54+
// been EOL for a while (late 2019) we should remove this hack.
55+
name = isNamedForLegacyIojs ? 'iojs' : 'node'
4956
}
5057

5158
// check for the nvm.sh standard mirror env variables

0 commit comments

Comments
 (0)