ADD unzip support

This commit is contained in:
RecuencoJones
2020-03-21 11:34:19 +01:00
parent ea4cba1c34
commit 7e5607f443
6 changed files with 86 additions and 4 deletions

View File

@@ -10,6 +10,8 @@ function getStrategy({ url }) {
if (url.endsWith('.tar.gz')) {
return require('../assets/untar');
} else if (url.endsWith('.zip')) {
return require('../assets/unzip');
} else {
return require('../assets/move');
}

View File

@@ -14,9 +14,6 @@ function untar({ opts, req, onSuccess, onError }) {
ungz.on('error', onError);
untar.on('error', onError);
// First we will Un-GZip, then we will untar. So once untar is completed,
// binary is downloaded into `binPath`. Verify the binary and call it good
untar.on('end', onSuccess);
req.pipe(ungz).pipe(untar);

19
src/assets/unzip.js Normal file
View File

@@ -0,0 +1,19 @@
const unzipper = require('unzipper');
/**
* Unzip strategy for resources using `.zip`.
*
* Once unzip is completed, binary is downloaded into `binPath`.
* Verify the binary and call it good.
*/
function unzip({ opts, req, onSuccess, onError }) {
const unzip = unzipper.Extract({ path: opts.binPath });
unzip.on('error', onError);
unzip.on('close', onSuccess);
req.pipe(unzip);
}
module.exports = unzip;