From 65a34d62fab67b6453eb03d089bc44f9ce99bdc5 Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Fri, 2 Sep 2016 10:17:17 +0200 Subject: [PATCH 1/2] Fix #112 --- lib/main.js | 28 +++++++++++++--------------- package.json | 4 ++-- test/main.js | 10 ++++------ 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/lib/main.js b/lib/main.js index 5834d41b..4586e046 100644 --- a/lib/main.js +++ b/lib/main.js @@ -2,13 +2,12 @@ var aws = require('aws-sdk'); var exec = require('child_process').exec; -var fs = require('fs'); +var fs = require('fs-extra'); var os = require('os'); var packageJson = require('./../package.json'); var path = require('path'); var async = require('async'); var zip = new require('node-zip')(); -var wrench = require('wrench'); var dotenv = require('dotenv'); var Lambda = function () { @@ -214,19 +213,18 @@ Lambda.prototype._zip = function (program, codeDirectory, callback) { }; console.log('=> Zipping repo. This might take up to 30 seconds'); - var files = wrench.readdirSyncRecursive(codeDirectory); - files.forEach(function (file) { - var filePath = [codeDirectory, file].join('/'); - var isFile = fs.lstatSync(filePath).isFile(); - if (isFile) { - var content = fs.readFileSync(filePath); - zip.file(file, content); - } - }); - - var data = zip.generate(options); - - return callback(null, data); + fs.walk(codeDirectory) + .on('data', function (file) { + if (!file.stats.isDirectory()) { + var content = fs.readFileSync(file.path); + var filePath = file.path.replace(codeDirectory + '/', ''); + zip.file(filePath, content); + } + }) + .on('end', function () { + var data = zip.generate(options); + return callback(null, data); + }); }; Lambda.prototype._nativeZip = function (program, codeDirectory, callback) { diff --git a/package.json b/package.json index 91ff8e54..c42c25b0 100644 --- a/package.json +++ b/package.json @@ -41,9 +41,9 @@ "aws-sdk": "^2.1.24", "commander": "^2.5.0", "dotenv": "^0.4.0", + "fs-extra": "^0.30.0", "node-uuid": "^1.4.2", "node-zip": "^1.1.0", - "rimraf": "^2.2.8", - "wrench": "^1.5.8" + "rimraf": "^2.2.8" } } diff --git a/test/main.js b/test/main.js index 6e872040..25697b28 100644 --- a/test/main.js +++ b/test/main.js @@ -92,7 +92,6 @@ describe('node-lambda', function () { lambda._rsync(program, '.', codeDirectory, true, function (err, result) { var contents = fs.readdirSync(codeDirectory); - console.log('contents: ', contents); result = _.includes(contents, 'index.js') && _.includes(contents, 'package.json') && !_.includes(contents, 'node_modules'); @@ -102,9 +101,9 @@ describe('node-lambda', function () { }); }); - describe("when there are excluded files", function (done) { + describe("when there are excluded files", function () { beforeEach(function (done) { - program.excludeGlobs="*.png test" + program.excludeGlobs="*.png test"; done(); }); @@ -216,7 +215,7 @@ describe('node-lambda', function () { result = _.includes(contents, 'node_modules/async/lib/async.js'); assert.equal(result, true); done(); - }) + }); }); it('packages a prebuilt module without installing', function (done) { @@ -238,14 +237,13 @@ describe('node-lambda', function () { var contents = _.map(archive.files, function (f) { return f.name.toString(); }); - console.log('contents: ', contents); var result = _.includes(contents, 'testa') && _.includes(contents, 'd/testb') && _.includes(contents, 'node_modules/a'); assert.equal(result, true); done(); - }) + }); }); }); From e65bbf74ad9dafb9cd41e4641303808e71151cbc Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Fri, 2 Sep 2016 10:36:12 +0200 Subject: [PATCH 2/2] Fix #127 --- bin/node-lambda | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/bin/node-lambda b/bin/node-lambda index 71338bb9..f11cf803 100755 --- a/bin/node-lambda +++ b/bin/node-lambda @@ -34,11 +34,9 @@ var PACKAGE_DIRECTORY = process.env.PACKAGE_DIRECTORY; var CONTEXT_FILE = process.env.CONTEXT_FILE || 'context.json'; var PREBUILT_DIRECTORY = process.env.PREBUILT_DIRECTORY || ''; - - program .version(lambda.version) - .command('deploy') + .alias('deploy') .description('Deploy your application to Amazon Lambda') .option('-e, --environment [' + AWS_ENVIRONMENT + ']', 'Choose environment {dev, staging, production}', AWS_ENVIRONMENT) @@ -70,8 +68,8 @@ program }); program - .version(lambda.version) .command('package') + .alias('zip') .description('Create zipped package for Amazon Lambda deployment') .option('-A, --packageDirectory [' + PACKAGE_DIRECTORY + ']', 'Local Package Directory', PACKAGE_DIRECTORY) .option('-n, --functionName [' + AWS_FUNCTION_NAME + ']', 'Lambda FunctionName', AWS_FUNCTION_NAME) @@ -88,8 +86,8 @@ program }); program - .version(lambda.version) .command('run') + .alias('execute') .description('Run your Amazon Lambda application locally') .option('-H, --handler [' + AWS_HANDLER + ']', 'Lambda Handler {index.handler}', AWS_HANDLER) .option('-j, --eventFile [' + EVENT_FILE + ']', 'Event JSON File', EVENT_FILE) @@ -102,7 +100,6 @@ program }); program - .version(lambda.version) .command('setup') .description('Sets up the .env file.') .option('-j, --eventFile [' + EVENT_FILE + ']', 'Event JSON File', EVENT_FILE)