Skip to content

Commit 93d9f71

Browse files
authored
Merge pull request #23 from nodenv/chakracore
Scrape chakracore defs
2 parents 553b8ea + 4e155c4 commit 93d9f71

File tree

3 files changed

+51
-25
lines changed

3 files changed

+51
-25
lines changed

bin/nodenv-update-version-defs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
#
33
# Summary: Create build definitions from nodejs.org
44
#
5-
# Usage: nodenv update-version-defs [-f] [-d <dir>] [-n] [--nodejs|--nodejs-pre]
5+
# Usage: nodenv update-version-defs [-f] [-d <dir>] [-n]
6+
# [--nodejs] [--nodejs-pre]
7+
# [--chakracore] [--chakracore-pre]
68
#
79
# Scrapes nodejs.org to create build definitions for node
810
# versions not yet available to node-build
@@ -15,7 +17,10 @@
1517
#
1618
# --nodejs Scrape nodejs.org for node definitions;
1719
# --nodejs-pre Scrape nodejs.org for node pre-release definitions;
18-
# If none of --nodejs,--nodejs-pre are supplied, defaults to --nodejs
20+
# --chakracore Scrape nodejs.org for chakracore definitions;
21+
# --chakracore-pre Scrape nodejs.org for chakracore pre-release definitions;
22+
# Defaults to --nodejs, if none of:
23+
# --nodejs, --nodejs-pre, --chakracore, --chakracore-pre
1924
#
2025
# Notes: If this plugin is not installed directly into "$NODENV_ROOT/plugins",
2126
# (ie, homebrew, npm, etc) then 'share/node-build' must be added to the
@@ -68,15 +73,17 @@ while [ $# -gt 0 ]; do
6873
echo --force
6974
echo --nodejs
7075
echo --nodejs-pre
76+
echo --chakracore
77+
echo --chakracore-pre
7178
exit ;;
7279
-d | --destination )
7380
shift
7481
# overwrite the defs write target
7582
NODE_BUILD_DEFINITIONS="$(abs_dirname "${1%/}/"):${NODE_BUILD_DEFINITIONS}" ;;
7683
-f | --force | \
7784
-n | --dry-run | \
78-
--nodejs | \
79-
--nodejs-pre )
85+
--nodejs | --nodejs-pre | \
86+
--chakracore | --chakracore-pre )
8087
SCRAPE_OPTS[${#SCRAPE_OPTS[*]}]="$1" ;;
8188
* )
8289
nodenv-help --usage update-version-defs >&2

lib/scraper-nodejs_org.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const fetch = require('./fetch')
44
const IterableRegExp = require('./iterable-regexp')
55

66
class Scraper {
7-
constructor ({ name, displayName, baseUri, listing }) {
7+
constructor ({ name, displayName = name, baseUri, listing }) {
88
this.name = name
99
this.displayName = displayName
1010
this.baseUri = baseUri
@@ -30,6 +30,15 @@ class Scraper {
3030
}
3131

3232
module.exports = class NodejsOrgScraper extends Scraper {
33+
constructor ({
34+
name = 'node',
35+
displayName,
36+
baseUri,
37+
listing = baseUri + 'index.json'
38+
}) {
39+
super({ name, displayName, baseUri, listing })
40+
}
41+
3342
fetch (listing) {
3443
return fetch(listing)
3544
}

libexec/scrape

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,31 @@
33
const DefinitionFile = require('../lib/definition-file')
44
const NodejsOrgScraper = require('../lib/scraper-nodejs_org')
55

6-
const nodejs = new NodejsOrgScraper({
7-
name: 'node',
8-
displayName: 'nodejs',
9-
listing: 'https://nodejs.org/dist/index.json',
10-
baseUri: 'https://nodejs.org/dist/'
11-
})
6+
const scrapers = {
7+
'--nodejs': new NodejsOrgScraper({
8+
displayName: 'nodejs',
9+
baseUri: 'https://nodejs.org/dist/'
10+
}),
1211

13-
const nodejsPre = new NodejsOrgScraper({
14-
name: 'node',
15-
displayName: 'nodejs release candidate',
16-
listing: 'https://nodejs.org/download/rc/index.json',
17-
baseUri: 'https://nodejs.org/download/rc/'
18-
})
12+
'--nodejs-pre': new NodejsOrgScraper({
13+
displayName: 'nodejs release candidate',
14+
baseUri: 'https://nodejs.org/download/rc/'
15+
}),
16+
17+
'--chakracore': new NodejsOrgScraper({
18+
name: 'chakracore',
19+
baseUri: 'https://nodejs.org/download/chakracore-release/'
20+
}),
21+
22+
'--chakracore-pre': new NodejsOrgScraper({
23+
name: 'chakracore',
24+
displayName: 'chakracore release candidate',
25+
baseUri: 'https://nodejs.org/download/chakracore-rc/'
26+
})
27+
}
28+
29+
const scrapersToRun = []
1930

20-
const scrapers = []
2131
const options = {
2232
dryRun: false,
2333
overwrite: false,
@@ -26,7 +36,7 @@ const options = {
2636
).split(':')
2737
}
2838

29-
process.argv.forEach(function (arg) {
39+
process.argv.forEach(arg => {
3040
switch (arg) {
3141
case '-f':
3242
case '--force':
@@ -37,18 +47,18 @@ process.argv.forEach(function (arg) {
3747
options.dryRun = true
3848
break
3949
case '--nodejs':
40-
scrapers.push(nodejs)
41-
break
4250
case '--nodejs-pre':
43-
scrapers.push(nodejsPre)
51+
case '--chakracore':
52+
case '--chakracore-pre':
53+
scrapersToRun.push(arg)
4454
break
4555
}
4656
})
4757

48-
if (!scrapers.length) {
49-
scrapers.push(nodejs)
58+
if (!scrapersToRun.length) {
59+
scrapersToRun.push('nodejs')
5060
}
5161

5262
DefinitionFile.configure(options)
5363

54-
scrapers.forEach(scraper => scraper.scrape())
64+
scrapersToRun.forEach(scraper => scrapers[scraper].scrape())

0 commit comments

Comments
 (0)