extract-zip
Advanced tools
Comparing version 1.1.0 to 1.1.1
87
index.js
@@ -58,3 +58,2 @@ var fs = require('fs') | ||
var dest = path.join(opts.dir, entry.fileName) | ||
var destDir = path.dirname(dest) | ||
@@ -83,19 +82,10 @@ // convert external file attr int into a fs stat mode int | ||
if (isDir) { | ||
debug('creating directory', dest) | ||
return mkdirp(dest, function (err) { | ||
if (err) { | ||
debug('mkdirp error', destDir, {error: err}) | ||
cancelled = true | ||
return done(err) | ||
} | ||
return done() | ||
}) | ||
} | ||
// always ensure folders are created | ||
var destDir = dest | ||
if (!isDir) destDir = path.dirname(dest) | ||
debug('opening read stream', dest) | ||
zipfile.openReadStream(entry, function (err, readStream) { | ||
debug('mkdirp', {dir: destDir}) | ||
mkdirp(destDir, function (err) { | ||
if (err) { | ||
debug('openReadStream error', err) | ||
debug('mkdirp error', destDir, {error: err}) | ||
cancelled = true | ||
@@ -105,35 +95,46 @@ return done(err) | ||
readStream.on('error', function (err) { | ||
console.log('read err', err) | ||
}) | ||
if (isDir) return done() | ||
if (symlink) writeSymlink() | ||
else writeStream() | ||
function writeStream () { | ||
var writeStream = fs.createWriteStream(dest, {mode: procMode}) | ||
readStream.pipe(writeStream) | ||
writeStream.on('finish', function () { | ||
done() | ||
}) | ||
writeStream.on('error', function (err) { | ||
debug('write error', {error: err}) | ||
debug('opening read stream', dest) | ||
zipfile.openReadStream(entry, function (err, readStream) { | ||
if (err) { | ||
debug('openReadStream error', err) | ||
cancelled = true | ||
return done(err) | ||
} | ||
readStream.on('error', function (err) { | ||
console.log('read err', err) | ||
}) | ||
} | ||
// AFAICT the content of the symlink file itself is the symlink target filename string | ||
function writeSymlink () { | ||
readStream.pipe(concat(function (data) { | ||
var link = data.toString() | ||
debug('creating symlink', link, dest) | ||
fs.symlink(link, dest, function (err) { | ||
if (err) cancelled = true | ||
done(err) | ||
if (symlink) writeSymlink() | ||
else writeStream() | ||
function writeStream () { | ||
var writeStream = fs.createWriteStream(dest, {mode: procMode}) | ||
readStream.pipe(writeStream) | ||
writeStream.on('finish', function () { | ||
done() | ||
}) | ||
})) | ||
} | ||
writeStream.on('error', function (err) { | ||
debug('write error', {error: err}) | ||
cancelled = true | ||
return done(err) | ||
}) | ||
} | ||
// AFAICT the content of the symlink file itself is the symlink target filename string | ||
function writeSymlink () { | ||
readStream.pipe(concat(function (data) { | ||
var link = data.toString() | ||
debug('creating symlink', link, dest) | ||
fs.symlink(link, dest, function (err) { | ||
if (err) cancelled = true | ||
done(err) | ||
}) | ||
})) | ||
} | ||
}) | ||
}) | ||
@@ -140,0 +141,0 @@ } |
{ | ||
"name": "extract-zip", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "unzip a zip file into a directory using 100% pure gluten-free organic javascript", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
6509