From bd65bb67e25a79b019d745b7262b2008ce2adb15 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 16 Nov 2016 01:59:39 +0100 Subject: incrementally verify denoms The denominations are not stored in a separate object store. --- node_modules/adm-zip/util/utils.js | 58 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) (limited to 'node_modules/adm-zip/util/utils.js') diff --git a/node_modules/adm-zip/util/utils.js b/node_modules/adm-zip/util/utils.js index b14db8c1c..528109845 100644 --- a/node_modules/adm-zip/util/utils.js +++ b/node_modules/adm-zip/util/utils.js @@ -2,7 +2,7 @@ var fs = require("fs"), pth = require('path'); fs.existsSync = fs.existsSync || pth.existsSync; - + module.exports = (function() { var crcTable = [], @@ -81,7 +81,7 @@ module.exports = (function() { case Constants.DEFLATED: return 'DEFLATED (' + method + ')'; default: - return 'UNSUPPORTED (' + method + ')' + return 'UNSUPPORTED (' + method + ')'; } }, @@ -116,6 +116,60 @@ module.exports = (function() { return true; }, + writeFileToAsync : function(/*String*/path, /*Buffer*/content, /*Boolean*/overwrite, /*Number*/attr, /*Function*/callback) { + if(typeof attr === 'function') { + callback = attr; + attr = undefined; + } + + fs.exists(path, function(exists) { + if(exists && !overwrite) + return callback(false); + + fs.stat(path, function(err, stat) { + if(exists &&stat.isDirectory()) { + return callback(false); + } + + var folder = pth.dirname(path); + fs.exists(folder, function(exists) { + if(!exists) + mkdirSync(folder); + + fs.open(path, 'w', 438, function(err, fd) { + if(err) { + fs.chmod(path, 438, function(err) { + fs.open(path, 'w', 438, function(err, fd) { + fs.write(fd, content, 0, content.length, 0, function(err, written, buffer) { + fs.close(fd, function(err) { + fs.chmod(path, attr || 438, function() { + callback(true); + }) + }); + }); + }); + }) + } else { + if(fd) { + fs.write(fd, content, 0, content.length, 0, function(err, written, buffer) { + fs.close(fd, function(err) { + fs.chmod(path, attr || 438, function() { + callback(true); + }) + }); + }); + } else { + fs.chmod(path, attr || 438, function() { + callback(true); + }) + } + } + }); + }) + }) + }) + }, + findFiles : function(/*String*/path) { return findSync(path, true); }, -- cgit v1.2.3