Skip to content

Commit c3915c3

Browse files
rvaggjoaocgreis
authored andcommitted
support v8-canary builds
PR-URL: #4 Reviewed-By: João Reis <[email protected]>
1 parent 1a6fd19 commit c3915c3

File tree

4 files changed

+41
-24
lines changed

4 files changed

+41
-24
lines changed

decode-ref.js

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
const assert = require('assert')
2-
, dirre = /^(v\d+\.\d+\.\d+(?:-rc\.\d+)?)(?:-(?:(?:next-)?nightly|test)\d{8}(\w+))?$/ // get version or commit from dir name
2+
, dirre = /^(v\d+\.\d+\.\d+(?:-rc\.\d+)?)(?:-((?:next-)?nightly|test|v8-canary)\d{8}(\w+))?$/ // get version or commit from dir name
33

44

55
function decodeRef (dir) {
66
var m = dir.match(dirre)
7-
return m && (m[2] || m[1])
7+
if (!m)
8+
return null
9+
if (!m[2])
10+
return `node/${m[1]}`
11+
return `${m[2] == 'v8-canary' ? 'v8-canary' : 'node'}/${m[3]}`
812
}
913

1014

@@ -13,15 +17,16 @@ module.exports = decodeRef
1317

1418
if (module === require.main) {
1519
var tests = [
16-
{ dir: 'v1.0.0' , ref: 'v1.0.0' }
17-
, { dir: 'v10.11.12' , ref: 'v10.11.12' }
18-
, { dir: 'v2.3.2-nightly20150625dcbb9e1da6' , ref: 'dcbb9e1da6' }
19-
, { dir: 'v2.3.1-next-nightly201506308f6f4280c6' , ref: '8f6f4280c6' }
20-
, { dir: 'v3.0.0-rc.1' , ref: 'v3.0.0-rc.1' }
21-
, { dir: 'v33.22.1-rc.111' , ref: 'v33.22.1-rc.111' }
22-
, { dir: 'v0.6.1' , ref: 'v0.6.1' }
23-
, { dir: 'v0.5.1' , ref: 'v0.5.1' }
24-
, { dir: 'v6.0.0-test20151107093b0e865c' , ref: '093b0e865c' }
20+
{ dir: 'v1.0.0' , ref: 'node/v1.0.0' }
21+
, { dir: 'v10.11.12' , ref: 'node/v10.11.12' }
22+
, { dir: 'v2.3.2-nightly20150625dcbb9e1da6' , ref: 'node/dcbb9e1da6' }
23+
, { dir: 'v2.3.1-next-nightly201506308f6f4280c6' , ref: 'node/8f6f4280c6' }
24+
, { dir: 'v3.0.0-rc.1' , ref: 'node/v3.0.0-rc.1' }
25+
, { dir: 'v33.22.1-rc.111' , ref: 'node/v33.22.1-rc.111' }
26+
, { dir: 'v0.6.1' , ref: 'node/v0.6.1' }
27+
, { dir: 'v0.5.1' , ref: 'node/v0.5.1' }
28+
, { dir: 'v6.0.0-test20151107093b0e865c' , ref: 'node/093b0e865c' }
29+
, { dir: 'v9.0.0-v8-canary20170609cd40078f1f' , ref: 'v8-canary/cd40078f1f' }
2530
]
2631

2732
tests.forEach(function (test) {

dist-indexer.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,16 @@ function cachePut (gitref, prop, value) {
8181

8282

8383
function fetch (url, gitref, callback) {
84-
let repo = (/^v0\.\d\./).test(gitref)
85-
? 'node-v0.x-archive'
86-
: 'node'
87-
url = url.replace('{gitref}', gitref)
84+
let refparts = gitref.split('/')
85+
let repo = refparts[0] == 'v8-canary'
86+
? 'node-v8'
87+
: (/^v0\.\d\./).test(refparts[1])
88+
? 'node-v0.x-archive'
89+
: 'node'
90+
91+
url = url.replace('{gitref}', refparts[1])
8892
.replace('{repo}', repo)
89-
+ `?rev=${gitref}`
93+
+ `?rev=${refparts[1]}`
9094
hyperquest.get(url, githubOptions).pipe(bl(function (err, data) {
9195
if (err)
9296
return callback(err)
@@ -98,7 +102,7 @@ function fetch (url, gitref, callback) {
98102

99103
function fetchNpmVersion (gitref, callback) {
100104
var version = cacheGet(gitref, 'npm')
101-
if (version || (/^v0\.([012345]\.\d+|6\.[0-2])$/).test(gitref))
105+
if (version || (/\/v0\.([012345]\.\d+|6\.[0-2])$/).test(gitref))
102106
return setImmediate(callback.bind(null, null, version))
103107

104108
fetch(npmPkgJsonUrl, gitref, function (err, rawData) {
@@ -160,7 +164,7 @@ function fetchV8Version (gitref, callback) {
160164

161165
function fetchUvVersion (gitref, callback) {
162166
var version = cacheGet(gitref, 'uv')
163-
if (version || (/^v0\.([01234]\.\d+|5\.0)$/).test(gitref))
167+
if (version || (/\/v0\.([01234]\.\d+|5\.0)$/).test(gitref))
164168
return setImmediate(callback.bind(null, null, version))
165169

166170
fetch(uvVersionUrl[0], gitref, function (err, rawData) {
@@ -216,7 +220,7 @@ function fetchUvVersion (gitref, callback) {
216220

217221
function fetchSslVersion (gitref, callback) {
218222
var version = cacheGet(gitref, 'ssl')
219-
if (version || (/^v0\.([01234]\.\d+|5\.[0-4])$/).test(gitref))
223+
if (version || (/\/v0\.([01234]\.\d+|5\.[0-4])$/).test(gitref))
220224
return setImmediate(callback.bind(null, null, version))
221225

222226
fetch(sslVersionUrl[0], gitref, function (err, rawData) {
@@ -249,7 +253,7 @@ function fetchSslVersion (gitref, callback) {
249253

250254
function fetchZlibVersion (gitref, callback) {
251255
var version = cacheGet(gitref, 'zlib')
252-
if (version || (/^v0\.([01234]\.\d+|5\.[0-7])$/).test(gitref))
256+
if (version || (/\/v0\.([01234]\.\d+|5\.[0-7])$/).test(gitref))
253257
return setImmediate(callback.bind(null, null, version))
254258

255259
fetch(zlibVersionUrl, gitref, function (err, rawData) {
@@ -267,7 +271,7 @@ function fetchZlibVersion (gitref, callback) {
267271

268272
function fetchModVersion (gitref, callback) {
269273
var version = cacheGet(gitref, 'mod')
270-
if (version || (/^v0\.1\.\d+$/).test(gitref))
274+
if (version || (/\/v0\.1\.\d+$/).test(gitref))
271275
return setImmediate(callback.bind(null, null, version))
272276

273277
fetch(modVersionUrl[0], gitref, function (err, rawData) {

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
},
1212
"dependencies": {
1313
"after": "~0.8.2",
14-
"bl": "~1.1.2",
15-
"hyperquest": "~1.0.1",
14+
"bl": "~1.2.1",
15+
"hyperquest": "~2.1.2",
1616
"map-async": "~0.1.1",
1717
"minimist": "~1.2.0",
1818
"semver": "~5.3.0"

transform-filename.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const assert = require('assert')
2828

2929

3030
function transformFilename (file) {
31-
file = file && file.replace(/^(?:\.\/)?(?:iojs|node)-v\d+\.\d+\.\d+-?((rc\.\d+|(next-)?nightly\d{8}[^-\.]+)-?)?\.?/, '')
31+
file = file && file.replace(/^(?:\.\/)?(?:iojs|node)-v\d+\.\d+\.\d+-?((rc\.\d+|(?:(next-)?nightly|test|v8-canary)\d{8}[^-\.]+)-?)?\.?/, '')
3232
.replace(/\.tar\.gz$/, '')
3333
return types[file]
3434
}
@@ -125,6 +125,14 @@ if (module === require.main) {
125125
, { file: 'node-v0.11.9.tar.gz', type: 'src' }
126126
, { file: 'node.exe', type: 'win-x86-exe' }
127127
, { file: 'x64/node.exe', type: 'win-x64-exe' }
128+
, { file: 'node-v9.0.0-v8-canary20170609cd40078f1f-darwin-x64.tar.gz', type: 'osx-x64-tar' }
129+
, { file: 'node-v9.0.0-v8-canary20170609cd40078f1f-darwin-x64.tar.xz' }
130+
, { file: 'node-v9.0.0-v8-canary20170609cd40078f1f-headers.tar.gz', type: 'headers' }
131+
, { file: 'node-v9.0.0-v8-canary20170609cd40078f1f-headers.tar.xz' }
132+
, { file: 'node-v9.0.0-test20170609cd40078f1f-darwin-x64.tar.gz', type: 'osx-x64-tar' }
133+
, { file: 'node-v9.0.0-test20170609cd40078f1f-darwin-x64.tar.xz' }
134+
, { file: 'node-v9.0.0-test20170609cd40078f1f-headers.tar.gz', type: 'headers' }
135+
, { file: 'node-v9.0.0-test20170609cd40078f1f-headers.tar.xz' }
128136
]
129137

130138
tests.forEach(function (test) {

0 commit comments

Comments
 (0)