Merge tag '0.3.2' into develop

0.3.2
This commit is contained in:
Book Pauk
2019-02-19 01:41:03 +07:00
3 changed files with 59 additions and 4 deletions

View File

@@ -1,8 +1,12 @@
const fs = require('fs-extra');
const zlib = require('zlib');
const crypto = require('crypto');
const path = require('path');
const utils = require('./utils');
const decompress = require('decompress');
const decompressGz = require('decompress-gz');
const decompressBzip2 = require('decompress-bzip2');
const FileDetector = require('./FileDetector');
class FileDecompressor {
@@ -13,11 +17,33 @@ class FileDecompressor {
async decompressFile(filename, outputDir) {
const fileType = await this.detector.detectFile(filename);
if (!fileType || !(fileType.ext == 'zip' || fileType.ext == 'bz2'))
if (!fileType || !(fileType.ext == 'zip' || fileType.ext == 'bz2' || fileType.ext == 'gz'))
return filename;
const files = await decompress(filename, outputDir);
//дурной decompress, поэтому в 2 этапа
//этап 1
let files = [];
try {
files = await decompress(filename, outputDir);
} catch (e) {
//
}
//этап 2
if (files.length == 0) {
try {
files = await decompress(filename, outputDir, {
inputFile: filename,
plugins: [
decompressGz(),
decompressBzip2({path: path.basename(filename)}),
]
});
} catch (e) {
//
}
}
let result = filename;
let max = 0;
if (files.length) {
@@ -29,6 +55,9 @@ class FileDecompressor {
}
}
}
//дурной decompress
if (result != filename)
await fs.chmod(result, 0o664);
return result;
}