From 8e2a27a9cd2f8375b6316b812889321628b17887 Mon Sep 17 00:00:00 2001 From: Michael Rommel Date: Wed, 19 Jun 2019 12:27:50 +0200 Subject: [PATCH] Fix broken fs.unlink call and add proxy support --- install.js | 16 ++++++++++++++-- package.json | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/install.js b/install.js index 5bf3fd50..64fa0d7c 100755 --- a/install.js +++ b/install.js @@ -6,7 +6,9 @@ * @License MIT */ +var urlparser = require('url') var https = require('https'); +var HttpsProxyAgent = require('https-proxy-agent'); var fs = require('fs'); var path = require('path'); var exec = require('child_process').exec; @@ -140,13 +142,22 @@ function download(url, dest, cb) { cb(null); } var file = fs.createWriteStream(dest); - var request = https.get(url, function(response) { + + var proxyServer = process.env.http_proxy || + process.env.HTTP_PROXY || + process.env.https_proxy || + process.env.HTTPS_PROXY; + var agent = new HttpsProxyAgent(proxyServer); + var options = urlparser.parse(url) + options.agent = agent + + var request = https.get(options, function(response) { response.pipe(file); file.on('finish', function() { file.close(cb); // close() is async, call cb after close completes. }); }).on('error', function(err) { // Handle errors - fs.unlink(dest); // Delete the file async. (But we don't check the result) + fs.unlinkSync(dest); if (cb) cb(err); }); } @@ -178,6 +189,7 @@ function downloadAll(files, baseURL, basePath, next) { console.log('Download: ' + url); download(url, path, function(err) { if (err) { + console.log(err); throw err; } downloadAll(files, baseURL, basePath, next); diff --git a/package.json b/package.json index 8c27cd88..69ab6628 100755 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "main": "index.js", "description": "Lib Sodium port for node.js", "dependencies": { + "https-proxy-agent": "^2.2.1", "node-addon-api": "*" }, "devDependencies": {