zipHelper.makeZipFile = function (directoryPath, zipFileName, callback) { "use strict"; var zipf = new Zipper(zipFileName); var fileArr = zipHelper.flatten(zipHelper.makeStruct(directoryPath)); var i = 0; var addToZip = function (err) { if (err) { console.log("Error!"); throw err; } if (i < fileArr.length) { i = i + 1; if (fileArr[i - 1].isfile) { zipf.addFile(fileArr[i - 1].p, fileArr[i - 1].p, addToZip); } else { addToZip(); } } else { if (callback !== undefined) { callback(); } } }; addToZip(); };
function(callback) { var zipfile = new zipper(path.join(dirPath, 'data.zip')); return async.eachSeries(files, function(file, callback) { var relative = path.relative(dirPath, file) return zipfile.addFile(file, relative, callback); }, function(err, res) { if (err) { return callback(err); } return fs.readFile(path.join(dirPath, 'data.zip'), callback); }) }],
async.series(jobs,function(err,results){ if (err) return callback(err); log.info('Creating module zip distribution'); var Zipper = require('zipper').Zipper, basedir = 'modules/iphone/'+options.moduleid+'/'+options.manifest.version+'/', files = [], finalzip = path.join(options.dest,options.moduleid+'-iphone-'+options.manifest.version+'.zip'), zipfile = new Zipper(finalzip), tasks = []; if (fs.existsSync(finalzip)) { fs.unlinkSync(finalzip); } files.push([finallib,basedir+path.basename(finallib)]); // directories & files we want to include in the module zip ['assets','platform','manifest','module.xcconfig','timodule.xml','LICENSE','metadata.json'].forEach(function(fn){ var rd = path.join(options.src,'..'), f = path.join(rd,fn); if (fs.existsSync(f)) { if (util.isDirectory(f)) { wrench.readdirSyncRecursive(f).forEach(function(nf){ var zfn = path.join(f,nf); files.push([zfn,basedir+path.relative(rd,zfn)]); }); } else { files.push([f,basedir+path.relative(rd,f)]); } } }); // create a zip task for each file files.forEach(function(entry){ tasks.push(function(callback){ zipfile.addFile(entry[0],entry[1],callback); }); }); // run the zip tasks async.series(tasks,function(err){ if (err) return callback(err); log.info('Created module distribution:',finalzip.yellow.bold); callback(); }); });
var addToZip = function (err) { if (err) { console.log("Error!"); throw err; } if (i < fileArr.length) { i = i + 1; if (fileArr[i - 1].isfile) { zipf.addFile(fileArr[i - 1].p, fileArr[i - 1].p, addToZip); } else { addToZip(); } } else { if (callback !== undefined) { callback(); } } };
var zipper = require('zipper').Zipper; //Diretório e o nome do arquivo a ser gerado var zipfile = new zipper('./arquivos/arquivo.zip'); //Arquivo / Caminho do arquivo zipfile.addFile('aula1-server.js','aula1-server.js',function(err){ if(err) throw err; console.log('Tudo Ok!!'); });
tasks.push(function(callback){ zipfile.addFile(entry[0],entry[1],callback); });
mergeLibraries(finallib, libs, function(){ log.info('Creating module zip distribution'); var Zipper = require('zipper').Zipper, basedir = 'modules/iphone/'+options.moduleid+'/'+options.manifest.version+'/', files = [], finalzip = path.join(options.dest,'..',options.moduleid+'-iphone-'+options.manifest.version+'.zip'), zipfile = new Zipper(finalzip), tasks = []; if (fs.existsSync(finalzip)) { fs.unlinkSync(finalzip); } function generateDocumentation(callback) { if (skipAPIDocGen) { return callback(); } appc.environ.detect(); var ti_sdk = appc.environ.getSDK('latest'), root = process.env.TI_ROOT /* || (ti_sdk && ti_sdk.path)*/, //<-- we don't ship this! fn = root && path.join(root,'apidoc','docgen.py'); if (fn) { var api_doc_path = path.join(options.src,'..','apidoc'), api_build_path = path.join(options.dest,'apidoc'); if (!fs.existsSync(api_doc_path)) { wrench.mkdirSyncRecursive(api_build_path); api_doc_path = path.join(options.src,'..','..','apidoc'); if (!fs.existsSync(api_doc_path)) { return callback(); } } var cmd = fn+' --format=jsca,modulehtml --css=styles.css -o "'+api_build_path+'" -e "'+api_doc_path+'"'; log.info('Running',cmd); exec(cmd, function(err,stdout,stderr) { if (err) { return callback(stderr || err); } callback(api_build_path); }); } else { log.warn("Not generating API documentation, make sure $TI_ROOT is setup to SDK source directory"); callback(); } } generateDocumentation(function(doc_path){ var rd = path.join(options.src,'..'); if (doc_path) { rd = path.join(rd,'build'); wrench.readdirSyncRecursive(doc_path).forEach(function(nf){ var zfn = path.join(doc_path,nf); files.push([zfn,basedir+path.relative(rd,zfn)]); }); rd = path.join(rd,'..'); } files.push([finallib,basedir+path.basename(finallib)]); // directories & files we want to include in the module zip ['assets'/*,'platform'*/,'hooks','manifest','module.xcconfig','timodule.xml','LICENSE','metadata.json'].forEach(function(fn){ var f = path.join(rd,fn); if (fs.existsSync(f)) { if (util.isDirectory(f)) { util.filelisting(f).forEach(function(zfn){ files.push([zfn,basedir+path.relative(rd,zfn)]); }); } else { //special hack to make sure we indicate this module is a hyperloop module if (fn=='manifest') { var c = fs.readFileSync(f).toString(); if (c.indexOf('hyperloop: true')===-1) { c+='\n# added to indicate hyperloop compiled module\nhyperloop: true\n'; fs.writeFileSync(f,c); } } files.push([f,basedir+path.relative(rd,f)]); } } }); // create a zip task for each file files.forEach(function(entry){ tasks.push(function(callback){ zipfile.addFile(entry[0],entry[1],callback); }); }); // run the zip tasks async.series(tasks,function(err){ if (err) return callback(err); log.info('Created module distribution:',finalzip.yellow.bold); callback(); }); }); });
return async.eachSeries(files, function(file, callback) { var relative = path.relative(dirPath, file) return zipfile.addFile(file, relative, callback); }, function(err, res) {