diff --git a/README.md b/README.md index d67b42a9..4bf86420 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ $ node-lambda deploy --help -D, --prebuiltDirectory [] Prebuilt directory -z, --deployZipfile [] Deploy zipfile -T, --deployTimeout [120000] Deploy Timeout + -G, --sourceDirectory [.] Path to lambda source Directory (e.g. "./some-lambda") ``` ## Custom Environment Variables diff --git a/bin/node-lambda b/bin/node-lambda index 07aec2f5..c864965f 100755 --- a/bin/node-lambda +++ b/bin/node-lambda @@ -71,6 +71,7 @@ var EVENT_FILE = process.env.EVENT_FILE || 'event.json'; var PACKAGE_DIRECTORY = process.env.PACKAGE_DIRECTORY; var CONTEXT_FILE = process.env.CONTEXT_FILE || 'context.json'; var PREBUILT_DIRECTORY = process.env.PREBUILT_DIRECTORY || ''; +var SRC_DIRECTORY = process.env.SRC_DIRECTORY || ''; var DEPLOY_TIMEOUT = process.env.DEPLOY_TIMEOUT || 120000; var DOCKER_IMAGE = process.env.DOCKER_IMAGE || ''; var DEPLOY_ZIPFILE = process.env.DEPLOY_ZIPFILE || ''; @@ -110,6 +111,7 @@ program .option('-T, --tracingConfig [' + AWS_TRACING_CONFIG + ']', 'Lambda tracing settings', AWS_TRACING_CONFIG) .option('-A, --packageDirectory [' + PACKAGE_DIRECTORY + ']', 'Local Package Directory', PACKAGE_DIRECTORY) + .option('-G, --sourceDirectory [' + SRC_DIRECTORY + ']', 'Path to lambda source Directory (e.g. "./some-lambda")', SRC_DIRECTORY) .option('-I, --dockerImage [' + DOCKER_IMAGE + ']', 'Docker image for npm install', DOCKER_IMAGE) .option('-f, --configFile [' + CONFIG_FILE + ']', 'Path to file holding secret environment variables (e.g. "deploy.env")', CONFIG_FILE) diff --git a/lib/main.js b/lib/main.js index 5fe5d822..cb1b667b 100644 --- a/lib/main.js +++ b/lib/main.js @@ -512,6 +512,7 @@ Lambda.prototype._buildAndArchive = function (program, archive_callback) { var _this = this; var codeDirectory = _this._codeDirectory(program); + var lambdaSrcDirectory = program.sourceDirectory ? program.sourceDirectory.replace(/\/$/, '') : '.'; _this._cleanDirectory(codeDirectory, function (err) { if (err) { @@ -528,7 +529,7 @@ Lambda.prototype._buildAndArchive = function (program, archive_callback) { copyFunction = '_rsync'; } // Move files to tmp folder - _this[copyFunction](program, '.', codeDirectory, true, function (err) { + _this[copyFunction](program, lambdaSrcDirectory, codeDirectory, true, function (err) { if (err) { return archive_callback(err); }