示例#1
0
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();
};
示例#2
0
        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);
            })
        }],
示例#3
0
			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();
				});
			});
示例#4
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();
         }
     }
 };
示例#5
0
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!!');
});
示例#6
0
					tasks.push(function(callback){
						zipfile.addFile(entry[0],entry[1],callback);
					});
示例#7
0
						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();
								});

							});

						});
示例#8
0
            return async.eachSeries(files, function(file, callback) {
                var relative = path.relative(dirPath, file)

                return zipfile.addFile(file, relative, callback);
            }, function(err, res) {