diff --git a/README.md b/README.md index a707151..83d744a 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,7 @@ The configuration is saved to `lldebugger.config.ts`. --config-env SAM environment --sam-config-file SAM configuration file --sam-template-file SAM template file + --sam-stack-name SAM stack name; --profile AWS profile to use --region AWS region to use --role AWS role to use diff --git a/src/configuration/getConfigFromCliArgs.ts b/src/configuration/getConfigFromCliArgs.ts index 90c9a7b..3dbd34e 100644 --- a/src/configuration/getConfigFromCliArgs.ts +++ b/src/configuration/getConfigFromCliArgs.ts @@ -54,6 +54,7 @@ export async function getConfigFromCliArgs( program.option('--config-env ', 'SAM environment'); program.option('--sam-config-file ', 'SAM configuration file'); program.option('--sam-template-file ', 'SAM template file'); + program.option('--sam-stack-name ', 'SAM stack name'); program.option('--profile ', 'AWS profile to use'); program.option('--region ', 'AWS region to use'); program.option('--role ', 'AWS role to use'); diff --git a/src/configuration/getConfigFromWizard.ts b/src/configuration/getConfigFromWizard.ts index ac0fe01..0c4454c 100644 --- a/src/configuration/getConfigFromWizard.ts +++ b/src/configuration/getConfigFromWizard.ts @@ -139,6 +139,14 @@ export async function getConfigFromWizard({ default: configFromCliArgs.samTemplateFile ?? currentConfig?.samTemplateFile, }, + { + type: 'input', + name: 'samStackName', + message: + 'Would you like to enter SAM stack name and not use the one from config?', + default: + configFromCliArgs.samStackName ?? currentConfig?.samStackName, + }, ]); answers = { ...answers, ...samAnswers }; @@ -421,6 +429,8 @@ export default { samConfigFile: "${config.samConfigFile}", // SAM framework template file samTemplateFile: "${config.samTemplateFile}", + // SAM framework stack name + samStackName: "${config.samStackName}", // Observable mode observable: ${config.observable}, // Observable mode interval @@ -468,6 +478,7 @@ function getConfigFromAnswers(answers: any): LldConfigCliArgs { configEnv: answers.configEnv, samConfigFile: answers.samConfigFile, samTemplateFile: answers.samTemplateFile, + samStackName: answers.samStackName, observable: answers.observable, interval: answers.interval !== undefined diff --git a/src/frameworks/samFramework.ts b/src/frameworks/samFramework.ts index 4f78449..efef899 100755 --- a/src/frameworks/samFramework.ts +++ b/src/frameworks/samFramework.ts @@ -90,7 +90,13 @@ export class SamFramework implements IFramework { samConfig = yaml.parse(samConfigContent); } - const stackName = samConfig[environment]?.global?.parameters?.stack_name; + let stackName: string | undefined; + + if (config.samStackName) { + stackName = config.samStackName; + } else { + stackName = samConfig[environment]?.global?.parameters?.stack_name; + } if (!stackName) { throw new Error(`Stack name not found in ${samConfigFile}`); diff --git a/src/types/lldConfig.ts b/src/types/lldConfig.ts index 0c121e6..201f84e 100644 --- a/src/types/lldConfig.ts +++ b/src/types/lldConfig.ts @@ -56,6 +56,11 @@ export type LldConfigBase = { */ samTemplateFile?: string; + /** + * SAM framework cli parameter stack-name + */ + samStackName?: string; + /** * Resources discovery function */