mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
* update tar to latest (4.4.8) * remove unused bz2 extraction code * update geckodriver to latest (1.16.2) * update untar to ensure destination exists
This commit is contained in:
parent
c94d93c578
commit
40d144f455
9 changed files with 36 additions and 147 deletions
|
@ -228,7 +228,7 @@
|
|||
"semver": "^5.5.0",
|
||||
"stream-stream": "^1.2.6",
|
||||
"style-loader": "0.23.1",
|
||||
"tar": "2.2.0",
|
||||
"tar": "4.4.8",
|
||||
"terser-webpack-plugin": "^1.1.0",
|
||||
"thread-loader": "^2.1.2",
|
||||
"tinygradient": "0.3.0",
|
||||
|
@ -366,7 +366,7 @@
|
|||
"exit-hook": "^2.1.0",
|
||||
"faker": "1.1.0",
|
||||
"fetch-mock": "7.3.0",
|
||||
"geckodriver": "^1.16.1",
|
||||
"geckodriver": "^1.16.2",
|
||||
"getopts": "^2.2.4",
|
||||
"grunt": "1.0.3",
|
||||
"grunt-cli": "^1.2.0",
|
||||
|
@ -432,4 +432,4 @@
|
|||
"node": "10.15.2",
|
||||
"yarn": "^1.10.1"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -31,7 +31,7 @@ import del from 'del';
|
|||
import deleteEmpty from 'delete-empty';
|
||||
import { createPromiseFromStreams, createMapStream } from '../../../legacy/utils';
|
||||
|
||||
import { Extract } from 'tar';
|
||||
import tar from 'tar';
|
||||
|
||||
const mkdirpAsync = promisify(mkdirpCb);
|
||||
const writeFileAsync = promisify(fs.writeFile);
|
||||
|
@ -174,12 +174,14 @@ export async function untar(source, destination, extractOptions = {}) {
|
|||
assertAbsolute(source);
|
||||
assertAbsolute(destination);
|
||||
|
||||
await mkdirpAsync(destination);
|
||||
|
||||
await createPromiseFromStreams([
|
||||
fs.createReadStream(source),
|
||||
createGunzip(),
|
||||
new Extract({
|
||||
tar.extract({
|
||||
...extractOptions,
|
||||
path: destination
|
||||
cwd: destination
|
||||
}),
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -316,7 +316,6 @@
|
|||
"stats-lite": "^2.2.0",
|
||||
"style-it": "2.1.2",
|
||||
"styled-components": "3.3.3",
|
||||
"tar-fs": "1.13.0",
|
||||
"tinycolor2": "1.3.0",
|
||||
"tinymath": "1.1.1",
|
||||
"topojson-client": "3.0.0",
|
||||
|
@ -325,7 +324,6 @@
|
|||
"typescript-fsa": "^2.5.0",
|
||||
"typescript-fsa-reducers": "^0.4.5",
|
||||
"ui-select": "0.19.6",
|
||||
"unbzip2-stream": "1.0.9",
|
||||
"unstated": "^2.1.1",
|
||||
"uuid": "3.0.1",
|
||||
"venn.js": "0.2.9",
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -16,8 +16,6 @@ import { promisify } from 'util';
|
|||
const FIXTURES_FOLDER = resolve(__dirname, '__fixtures__');
|
||||
const SRC_FILE_UNCOMPRESSED = resolve(FIXTURES_FOLDER, 'file.md');
|
||||
const SRC_FILE_COMPRESSED_ZIP = `${SRC_FILE_UNCOMPRESSED}.zip`;
|
||||
const SRC_FILE_COMPRESSED_BZ2 = `${SRC_FILE_UNCOMPRESSED}.bz2`;
|
||||
const SRC_FILE_COMPRESSED_TAR_BZ2 = `${SRC_FILE_UNCOMPRESSED}.tar.bz2`;
|
||||
const EXTRACT_TARGET_FOLDER = resolve(FIXTURES_FOLDER, 'extract_target');
|
||||
const EXTRACT_TARGET_FILE = resolve(EXTRACT_TARGET_FOLDER, 'file.md');
|
||||
|
||||
|
@ -106,57 +104,4 @@ describe('extract', () => {
|
|||
});
|
||||
}
|
||||
});
|
||||
|
||||
describe('bunzip2()', () => {
|
||||
it('throws an Error given a non-bz2 file', async () => {
|
||||
let thrownException;
|
||||
try {
|
||||
await extract(SRC_FILE_UNCOMPRESSED, EXTRACT_TARGET_FOLDER);
|
||||
} catch (e) {
|
||||
thrownException = e;
|
||||
}
|
||||
|
||||
expect(thrownException).to.be.an(ExtractError);
|
||||
});
|
||||
|
||||
it('throws an Error given a non-tar.bz2 file', async () => {
|
||||
let thrownException;
|
||||
try {
|
||||
await extract(SRC_FILE_COMPRESSED_BZ2, EXTRACT_TARGET_FOLDER);
|
||||
} catch (e) {
|
||||
thrownException = e;
|
||||
}
|
||||
|
||||
expect(thrownException).to.be.an(ExtractError);
|
||||
});
|
||||
|
||||
it('successfully extracts a valid tar.bz2 file to the given target', async () => {
|
||||
await extract(SRC_FILE_COMPRESSED_TAR_BZ2, EXTRACT_TARGET_FOLDER);
|
||||
|
||||
const stats = fs.statSync(EXTRACT_TARGET_FILE);
|
||||
expect(stats).to.be.an(Object);
|
||||
|
||||
const srcFileHash = await fileHash(SRC_FILE_UNCOMPRESSED);
|
||||
const targetFileHash = await fileHash(EXTRACT_TARGET_FILE);
|
||||
expect(targetFileHash).to.eql(srcFileHash);
|
||||
});
|
||||
|
||||
if (isWindows) {
|
||||
it(`Windows doesn't support chmod, so it's missing access tests. Windows is throwing EEXIST.`);
|
||||
} else {
|
||||
it('throws an ExtractError with cause.code of EACESS when target is un-writeable', async () => {
|
||||
await fsp.mkdir(EXTRACT_TARGET_FOLDER, 0o444);
|
||||
|
||||
let thrownException;
|
||||
try {
|
||||
await extract(SRC_FILE_COMPRESSED_TAR_BZ2, EXTRACT_TARGET_FOLDER);
|
||||
} catch (e) {
|
||||
thrownException = e;
|
||||
}
|
||||
|
||||
expect(thrownException).to.be.an(ExtractError);
|
||||
expect(thrownException.cause.code).to.eql('EACCES');
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { ExtractError } from './extract_error';
|
||||
import fs from 'fs';
|
||||
import tar from 'tar-fs';
|
||||
import unbzip2 from 'unbzip2-stream';
|
||||
|
||||
export function bunzip2(filepath, target) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
fs.createReadStream(filepath)
|
||||
.on('error', function (err) {
|
||||
reject(new ExtractError(err));
|
||||
})
|
||||
.pipe(unbzip2())
|
||||
.on('error', function (err) {
|
||||
reject(new ExtractError(err));
|
||||
})
|
||||
.pipe(tar.extract(target))
|
||||
.on('error', function (err) {
|
||||
reject(new ExtractError(err));
|
||||
})
|
||||
.on('finish', resolve);
|
||||
});
|
||||
}
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
import path from 'path';
|
||||
import { unzip } from './unzip';
|
||||
import { bunzip2 } from './bunzip2';
|
||||
import { ExtractError } from './extract_error';
|
||||
|
||||
export async function extract(archivePath, targetPath) {
|
||||
|
@ -14,9 +13,6 @@ export async function extract(archivePath, targetPath) {
|
|||
let unpacker;
|
||||
|
||||
switch (fileType) {
|
||||
case 'bz2':
|
||||
unpacker = bunzip2;
|
||||
break;
|
||||
case 'zip':
|
||||
unpacker = unzip;
|
||||
break;
|
||||
|
|
80
yarn.lock
80
yarn.lock
|
@ -11841,16 +11841,16 @@ gaze@^1.0.0, gaze@^1.1.0:
|
|||
dependencies:
|
||||
globule "^1.0.0"
|
||||
|
||||
geckodriver@^1.16.1:
|
||||
version "1.16.1"
|
||||
resolved "https://registry.yarnpkg.com/geckodriver/-/geckodriver-1.16.1.tgz#349ddc88244356eefc475d943c379bc320d7d59a"
|
||||
integrity sha512-e16K82snvoG60GaMc9E4gIOXwc6HaVY9JIToaIlTI+eVjqnj96vUjQ+/gFZlOUw2N3g4KgST7RFpyoeyJ/jzkQ==
|
||||
geckodriver@^1.16.2:
|
||||
version "1.16.2"
|
||||
resolved "https://registry.yarnpkg.com/geckodriver/-/geckodriver-1.16.2.tgz#4766e6eb6835e9ec8797f1dce1966df2b3fb5985"
|
||||
integrity sha512-kXZP4QferAv57Ru4Fx2WYuu//ErKJP4hPEkJm4mSETo42jsdYFwdNxwQ4vCGhf14gsCdxU9YrwNupJ8gr1GxPg==
|
||||
dependencies:
|
||||
adm-zip "0.4.11"
|
||||
bluebird "3.4.6"
|
||||
got "5.6.0"
|
||||
https-proxy-agent "2.2.1"
|
||||
tar "4.0.2"
|
||||
tar "4.4.2"
|
||||
|
||||
generate-function@^2.0.0:
|
||||
version "2.3.1"
|
||||
|
@ -17733,7 +17733,7 @@ minipass@^2.2.1:
|
|||
safe-buffer "^5.1.1"
|
||||
yallist "^3.0.0"
|
||||
|
||||
minipass@^2.3.4:
|
||||
minipass@^2.2.4, minipass@^2.3.4:
|
||||
version "2.3.5"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
|
||||
integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
|
||||
|
@ -17741,10 +17741,10 @@ minipass@^2.3.4:
|
|||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.0"
|
||||
|
||||
minizlib@^1.0.4:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
|
||||
integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==
|
||||
minizlib@^1.1.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
|
||||
integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
|
||||
dependencies:
|
||||
minipass "^2.2.1"
|
||||
|
||||
|
@ -24453,15 +24453,6 @@ tapable@^1.0.0, tapable@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c"
|
||||
integrity sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==
|
||||
|
||||
tar-fs@1.13.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.13.0.tgz#4ac62c0de490dbba9e307d0a0312641091d5c45e"
|
||||
integrity sha1-SsYsDeSQ27qeMH0KAxJkEJHVxF4=
|
||||
dependencies:
|
||||
mkdirp "^0.5.0"
|
||||
pump "^1.0.0"
|
||||
tar-stream "^1.1.2"
|
||||
|
||||
tar-fs@^1.16.2, tar-fs@^1.16.3:
|
||||
version "1.16.3"
|
||||
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509"
|
||||
|
@ -24495,36 +24486,20 @@ tar-stream@^1.5.0:
|
|||
to-buffer "^1.1.1"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar@2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.0.tgz#527c595940b9673f386c7237759982ab2f274d08"
|
||||
integrity sha1-UnxZWUC5Zz84bHI3dZmCqy8nTQg=
|
||||
dependencies:
|
||||
block-stream "*"
|
||||
fstream "^1.0.2"
|
||||
inherits "2"
|
||||
|
||||
tar@4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-4.0.2.tgz#e8e22bf3eec330e5c616d415a698395e294e8fad"
|
||||
integrity sha512-4lWN4uAEWzw8aHyBUx9HWXvH3vIFEhOyvN22HfBzWpE07HaTBXM8ttSeCQpswRo5On4q3nmmYmk7Tomn0uhUaw==
|
||||
tar@4.4.2:
|
||||
version "4.4.2"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462"
|
||||
integrity sha512-BfkE9CciGGgDsATqkikUHrQrraBCO+ke/1f6SFAEMnxyyfN9lxC+nW1NFWMpqH865DhHIy9vQi682gk1X7friw==
|
||||
dependencies:
|
||||
chownr "^1.0.1"
|
||||
minipass "^2.2.1"
|
||||
minizlib "^1.0.4"
|
||||
fs-minipass "^1.2.5"
|
||||
minipass "^2.2.4"
|
||||
minizlib "^1.1.0"
|
||||
mkdirp "^0.5.0"
|
||||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.2"
|
||||
|
||||
tar@^2.0.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
|
||||
integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
|
||||
dependencies:
|
||||
block-stream "*"
|
||||
fstream "^1.0.2"
|
||||
inherits "2"
|
||||
|
||||
tar@^4:
|
||||
tar@4.4.8, tar@^4:
|
||||
version "4.4.8"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
|
||||
integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==
|
||||
|
@ -24537,6 +24512,15 @@ tar@^4:
|
|||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.2"
|
||||
|
||||
tar@^2.0.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
|
||||
integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
|
||||
dependencies:
|
||||
block-stream "*"
|
||||
fstream "^1.0.2"
|
||||
inherits "2"
|
||||
|
||||
tcp-port-used@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70"
|
||||
|
@ -25750,14 +25734,6 @@ ultron@~1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
|
||||
integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
|
||||
|
||||
unbzip2-stream@1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.0.9.tgz#9d107697a8d539d7bfdb9378a1cd832836bb7f8f"
|
||||
integrity sha1-nRB2l6jVOde/25N4oc2DKDa7f48=
|
||||
dependencies:
|
||||
buffer "^3.0.1"
|
||||
through "^2.3.6"
|
||||
|
||||
unbzip2-stream@^1.0.9:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue