Initial commit
This commit is contained in:
92
node_modules/node-zip/lib/nodezip-cli.js
generated
vendored
Normal file
92
node_modules/node-zip/lib/nodezip-cli.js
generated
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
var fs = require('fs'),
|
||||
JSZip = require('jszip'),
|
||||
path = require('path'),
|
||||
args = process.argv.slice(2),
|
||||
zip = new JSZip();
|
||||
|
||||
if(/-h|-H|--help|-\?/.test(args)||!args.length) {
|
||||
printHelp();
|
||||
} else {
|
||||
var command = args.shift();
|
||||
if(command == '-c') {
|
||||
var zipfile = args.shift();
|
||||
console.log('Creating %s...', zipfile);
|
||||
args.forEach(function(file) {
|
||||
if(fs.existsSync(file)) {
|
||||
addFile(file);
|
||||
} else {
|
||||
console.error('Error: file %s not found.', file);
|
||||
process.exit(2);
|
||||
}
|
||||
});
|
||||
console.log("Deflating...")
|
||||
fs.writeFileSync(zipfile, zip.generate({type:"nodebuffer", compression:'DEFLATE'}));
|
||||
console.log("Done.")
|
||||
} else if(command == '-x') {
|
||||
var zipfile = args.shift();
|
||||
var destination = args.shift();
|
||||
var zipdata = fs.readFileSync(zipfile);
|
||||
console.log('Reading %s...', zipfile);
|
||||
try {
|
||||
var zip = new JSZip(zipdata, {checkCRC32: true});
|
||||
} catch(e) {
|
||||
console.error("Error: invalid file");
|
||||
process.exit(2);
|
||||
}
|
||||
Object.keys(zip.files).forEach(function(filepath) {
|
||||
file = zip.files[filepath];
|
||||
if (destination) filepath = destination + path.sep + filepath
|
||||
if(file.options.dir) {
|
||||
console.log(' Creating', filepath);
|
||||
mkdirRecursively(filepath);
|
||||
} else {
|
||||
console.log(' Inflating', filepath);
|
||||
// TODO: add prompt if file exists
|
||||
fs.writeFileSync(filepath, file.asNodeBuffer());
|
||||
}
|
||||
});
|
||||
console.log('Done.');
|
||||
} else {
|
||||
console.error('Error: wrong command')
|
||||
printHelp();
|
||||
}
|
||||
}
|
||||
|
||||
function printHelp() {
|
||||
console.error('Usage:');
|
||||
console.error(' -c zipfile file1 [file2] [...] Create zip file with file/directory list');
|
||||
console.error(' -x zipfile [destination] Extract zip file');
|
||||
console.error(' -h | -H | --help | -? Show help');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
function addFile(filepath) {
|
||||
if(fs.lstatSync(filepath).isDirectory()) {
|
||||
console.log(" Adding folder", filepath);
|
||||
zip.folder(filepath);
|
||||
var directory = fs.readdirSync(filepath);
|
||||
directory.forEach(function(subfilepath) {
|
||||
addFile(path.join(filepath,subfilepath));
|
||||
});
|
||||
} else {
|
||||
console.log(" Adding file", filepath)
|
||||
zip.file(filepath, fs.readFileSync(filepath, 'binary'));
|
||||
}
|
||||
}
|
||||
|
||||
function mkdirRecursively(folderpath, mode) {
|
||||
try {
|
||||
fs.mkdirSync(folderpath, mode);
|
||||
return true;
|
||||
} catch(e) {
|
||||
if (e.errno == 34) {
|
||||
mkdirRecursively(path.dirname(folderpath), mode);
|
||||
mkdirRecursively(folderpath, mode);
|
||||
} else if (e.errno == 47) {
|
||||
return true;
|
||||
} else {
|
||||
console.log("Error: Unable to create folder %s (errno: %s)", folderpath, e.errno)
|
||||
process.exit(2);
|
||||
}
|
||||
}
|
||||
};
|
||||
5
node_modules/node-zip/lib/nodezip.js
generated
vendored
Normal file
5
node_modules/node-zip/lib/nodezip.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
var fs = require('fs');
|
||||
var JSZip = require('jszip');
|
||||
|
||||
global.JSZip = JSZip;
|
||||
module.exports = function(data, options) { return new JSZip(data, options) };
|
||||
Reference in New Issue
Block a user