#!/usr/bin/env node var dotenv = require('dotenv'); var lambda = require('../lib/main.js'); var program = require('commander'); var packageJson = require(process.cwd() + '/package.json'); dotenv.load(); var AWS_ENVIRONMENT = process.env.AWS_ENVIRONMENT || 'development'; var AWS_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID || 'missing'; var AWS_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY || 'missing'; var AWS_REGION = process.env.AWS_REGION || 'us-east-1,us-west-2,eu-west-1'; var AWS_FUNCTION_NAME = process.env.AWS_FUNCTION_NAME || packageJson.name; var AWS_HANDLER = process.env.AWS_HANDLER || 'index.handler'; var AWS_MODE = 'event'; var AWS_ROLE = process.env.AWS_ROLE_ARN || process.env.AWS_ROLE || 'missing'; var AWS_MEMORY_SIZE = process.env.AWS_MEMORY_SIZE || 128; var AWS_TIMEOUT = process.env.AWS_TIMEOUT || 60; var AWS_DESCRIPTION = process.env.AWS_DESCRIPTION || ''; var AWS_RUNTIME = process.env.AWS_RUNTIME || 'nodejs'; var AWS_FUNCTION_VERSION = process.env.AWS_FUNCTION_VERSION || packageJson.version; program .version( lambda.version ) .command( 'deploy' ) .description( 'Deploy your application to Amazon Lambda' ) .option( '-e, --environment [' + AWS_ENVIRONMENT + ']', 'Choose environment {development, stating, production}', AWS_ENVIRONMENT ) .option( '-a, --accessKey [' + AWS_ACCESS_KEY_ID + ']', 'AWS Access Key', AWS_ACCESS_KEY_ID ) .option( '-s, --secretKey [' + AWS_SECRET_ACCESS_KEY + ']', 'AWS Secret Key', AWS_SECRET_ACCESS_KEY ) .option( '-r, --region [' + AWS_REGION + ']', 'AWS Region', AWS_REGION ) .option( '-n, --functionName [' + AWS_FUNCTION_NAME + ']', 'Lambda FunctionName', AWS_FUNCTION_NAME ) .option( '-h, --handler [' + AWS_HANDLER + ']', 'Lambda Handler {index.handler}', AWS_HANDLER ) .option( '-c, --mode [' + AWS_MODE + ']', 'Lambda Mode', AWS_MODE ) .option( '-o, --role [' + AWS_ROLE + ']', 'Amazon Role ARN', AWS_ROLE ) .option( '-m, --memorySize [' + AWS_MEMORY_SIZE + ']', 'Lambda Memory Size', AWS_MEMORY_SIZE ) .option( '-t, --timeout [' + AWS_TIMEOUT + ']', 'Lambda Timeout', AWS_TIMEOUT ) .option( '-d, --description [' + AWS_DESCRIPTION + ']', 'Lambda Description', AWS_DESCRIPTION ) .option( '-u, --runtime [' + AWS_RUNTIME + ']', 'Lambda Runtime', AWS_RUNTIME ) .option( '-v, --version [' + AWS_FUNCTION_VERSION + ']', 'Lambda Function Version', AWS_FUNCTION_VERSION ) .action( function( prg ) { lambda.deploy( prg ); } ); program .version( lambda.version ) .command( 'run' ) .description( 'Run your Amazon Lambda application locally' ) .option( '-h, --handler [' + AWS_HANDLER + ']', 'Lambda Handler {index.handler}', AWS_HANDLER ) .action( function( prg ) { lambda.run( prg ); } ); program .version( lambda.version ) .command( 'setup' ) .description( 'Sets up the .env file.' ) .action( function( prg ) { lambda.setup( ); } ) program.parse( process.argv );