/** * Unpack the tarball into given directory. * * Used from https://github.com/ywangii/await-targz under MIT. * * @param {String} tarball Path for tarball to be extracted * @param {String} dir Path for the file to be extracted * @returns {Promise} A promise represents if unpack tarball succeeds or fails * @public */ async unpack(tarball, dir) { return { then: (fulfill, reject) => { const logOpts = { tarball, dir }; const readableStream = fs.createReadStream(tarball).once('error', this._logError(`fs.createReadStream`, logOpts)); const unzip = zlib.createUnzip().once('error', this._logError(`zlib.createUnzip`, logOpts)); const extract = tar.extract(dir).once('error', this._logError(`tar.extract`, logOpts)); pump(readableStream, unzip, extract, err => { if (err) return reject(err); fulfill(); }); } }; }
/** * Unpack the tarball into given directory. * * Used from https://github.com/ywangii/await-targz under MIT. * * @param {String} tarball Path for tarball to be extracted * @param {String} dir Path for the file to be extracted * @returns {Promise} A promise represents if unpack tarball succeeds or fails * @public */ async unpack(tarball, dir) { return { then: (fulfill, reject) => { const logOpts = { tarball, dir }; const readableStream = fs.createReadStream(tarball).once('error', this._logError(`fs.createReadStream`, logOpts)); const unzip = zlib.createUnzip().once('error', this._logError(`zlib.createUnzip`, logOpts)); const extract = tar.extract(dir).once('error', this._logError(`tar.extract`, logOpts)); pump(readableStream, unzip, extract, err => { if (err) return reject(err); fulfill(); }); } }; }