@plexus-interop/cli
Version:
Plexus Interop CLI tools
79 lines • 5.76 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Copyright 2017-2020 Plexus Interop Deutsche Bank AG
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var files_1 = require("./files");
var progress_1 = require("./progress");
var zlib = require("zlib");
var tar = require("tar-fs");
var request = require("request");
var path = require("path");
var fs = require("fs");
function downloadPackage(url, downloadDir, title, headers) {
if (title === void 0) { title = 'Package'; }
if (headers === void 0) { headers = {}; }
return new Promise(function (resolve, reject) {
try {
var isZip_1 = url.endsWith('.zip');
var isTarGz = url.endsWith('.tar.gz');
var fileName_1 = url.split('/').pop();
console.log("Downloading " + title + " from: ", url);
console.log('Target dir: ', downloadDir);
files_1.removeSync(downloadDir);
files_1.mkdirsSync(downloadDir);
var responsePipe = request
.get({
url: url,
rejectUnauthorized: false,
agent: false,
headers: headers
})
.on('response', function (response) { return progress_1.printProgress(response, "Downloading " + title); })
.on('error', function (error) {
console.error(title + " download failed", error);
reject(error);
});
if (isTarGz) {
responsePipe
.pipe(zlib.createUnzip())
.pipe(tar.extract(downloadDir))
.on('end', function () {
console.log(title + " download finished");
resolve(downloadDir);
});
}
else {
responsePipe
.pipe(fs.createWriteStream(path.join(downloadDir, fileName_1)))
.on('close', function () {
console.log(title + " download finished");
if (isZip_1) {
var zipPath = path.join(downloadDir, fileName_1);
files_1.unzipSync(zipPath, downloadDir);
}
resolve(downloadDir);
});
}
}
catch (error) {
console.error('Unexpected error', error);
reject(error);
}
});
}
exports.downloadPackage = downloadPackage;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2Rvd25sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsaUNBQTREO0FBQzVELHVDQUEyQztBQUMzQywyQkFBNkI7QUFDN0IsNEJBQThCO0FBQzlCLGlDQUFtQztBQUNuQywyQkFBNkI7QUFDN0IsdUJBQXlCO0FBRXpCLFNBQWdCLGVBQWUsQ0FBQyxHQUFXLEVBQUUsV0FBbUIsRUFBRSxLQUF5QixFQUFFLE9BQWlCO0lBQTVDLHNCQUFBLEVBQUEsaUJBQXlCO0lBQUUsd0JBQUEsRUFBQSxZQUFpQjtJQUMxRyxPQUFPLElBQUksT0FBTyxDQUFTLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDdkMsSUFBSTtZQUNBLElBQU0sT0FBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsSUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxJQUFNLFVBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBWSxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWUsS0FBSyxZQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDekMsa0JBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixrQkFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLElBQU0sWUFBWSxHQUFHLE9BQU87aUJBQ3ZCLEdBQUcsQ0FBQztnQkFDRCxHQUFHLEtBQUE7Z0JBQ0gsa0JBQWtCLEVBQUUsS0FBSztnQkFDekIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxTQUFBO2FBQ1YsQ0FBQztpQkFDRCxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQUMsUUFBYSxJQUFLLE9BQUEsd0JBQWEsQ0FBQyxRQUFRLEVBQUUsaUJBQWUsS0FBTyxDQUFDLEVBQS9DLENBQStDLENBQUM7aUJBQ2xGLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQyxLQUFVO2dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFJLEtBQUsscUJBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztZQUNQLElBQUksT0FBTyxFQUFFO2dCQUNULFlBQVk7cUJBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztxQkFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQzlCLEVBQUUsQ0FBQyxLQUFLLEVBQUU7b0JBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBSSxLQUFLLHVCQUFvQixDQUFDLENBQUM7b0JBQzFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7YUFDVjtpQkFBTTtnQkFDSCxZQUFZO3FCQUNQLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBUSxDQUFDLENBQUMsQ0FBQztxQkFDNUQsRUFBRSxDQUFDLE9BQU8sRUFBRTtvQkFDVCxPQUFPLENBQUMsR0FBRyxDQUFJLEtBQUssdUJBQW9CLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxPQUFLLEVBQUU7d0JBQ1AsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBUSxDQUFDLENBQUM7d0JBQ2pELGlCQUFTLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO3FCQUNuQztvQkFDRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO2FBQ1Y7U0FDSjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUEvQ0QsMENBK0NDIn0=
;