OpenDroneMap-NodeODM/libs/ziputils.js

38 wiersze
1.3 KiB
JavaScript

const processRunner = require('./processRunner');
const nodeUnzip = require('node-unzip-2');
const config = require('../config');
const fs = require('fs');
module.exports = {
unzip: function(file, outputDir, cb, noDirectories = false){
if (config.hasUnzip){
processRunner.unzip({
file: file,
destination: outputDir,
noDirectories
}, (err, code, _) => {
if (err) cb(err);
else{
if (code === 0) cb();
else cb(new Error(`Could not extract .zip file, unzip exited with code ${code}`));
}
});
}else if (config.has7z){
processRunner.sevenUnzip({
file: file,
destination: outputDir,
noDirectories
}, (err, code, _) => {
if (err) cb(err);
else{
if (code === 0) cb();
else cb(new Error(`Could not extract .zip file, 7z exited with code ${code}`));
}
});
}else{
fs.createReadStream(file).pipe(nodeUnzip.Extract({ path: outputDir }))
.on('close', cb)
.on('error', cb);
}
}
}