You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/pitfall/pdfkit/node_modules/string_decoder/build/build.js

94 lines
2.5 KiB
JavaScript

#!/usr/bin/env node
const hyperquest = require('hyperzip')(require('hyperdirect'))
, bl = require('bl')
, fs = require('fs')
, path = require('path')
, cheerio = require('cheerio')
, files = require('./files')
, testReplace = require('./test-replacements')
, srcurlpfx = 'https://raw.github.com/joyent/node/v' + process.argv[2] + '-release/'
, libsrcurl = srcurlpfx + 'lib/'
, testsrcurl = srcurlpfx + 'test/simple/'
, testlisturl = 'https://github.com/joyent/node/tree/v' + process.argv[2] + '-release/test/simple'
, libourroot = path.join(__dirname, '../')
, testourroot = path.join(__dirname, '../test/simple/')
function processFile (url, out, replacements) {
hyperquest(url).pipe(bl(function (err, data) {
if (err)
throw err
data = data.toString()
replacements.forEach(function (replacement) {
data = data.replace.apply(data, replacement)
})
fs.writeFile(out, data, 'utf8', function (err) {
if (err)
throw err
console.log('Wrote', out)
})
}))
}
function processLibFile (file) {
var replacements = files[file]
, url = libsrcurl + file
, out = path.join(libourroot, replacements.out || file)
processFile(url, out, replacements)
}
function processTestFile (file) {
var replacements = testReplace.all
, url = testsrcurl + file
, out = path.join(testourroot, file)
if (testReplace[file])
replacements = replacements.concat(testReplace[file])
processFile(url, out, replacements)
}
if (!/0\.1\d\.\d+/.test(process.argv[2])) {
console.log('Usage: build.js <node version>')
return process.exit(-1)
}
//--------------------------------------------------------------------
// Grab & process files in ../lib/
Object.keys(files).forEach(processLibFile)
//--------------------------------------------------------------------
// Discover, grab and process all test-string-decoder* files on joyent/node
hyperquest(testlisturl).pipe(bl(function (err, data) {
if (err)
throw err
var $ = cheerio.load(data.toString())
$('table.files .js-directory-link').each(function () {
var file = $(this).text()
if (/^test-string-decoder/.test(file) || file == 'common.js')
processTestFile(file)
})
}))
//--------------------------------------------------------------------
// Grab the joyent/node test/common.js
processFile(
testsrcurl + '../common.js'
, path.join(testourroot, '../common.js')
, testReplace['common.js']
)