@@ -32,6 +32,7 @@ var OfflineValidateMode = "validate_offline"
3232var ConfigureMode = "configure"
3333var CreateStackMode = "create-stack"
3434var DestroyStackMode = "delete-stack"
35+ var UpdateStackMode = "update-stack"
3536var MfaMode = "mfa"
3637
3738type CliArguments struct {
@@ -88,6 +89,13 @@ func ParseCliArguments(args []string) (cliArguments CliArguments, err error) {
8889 deleteStack = app .Command (DestroyStackMode , "Deletes a stack on aws" )
8990 deleteStackName = deleteStack .Arg ("stack" , "An AWS stack name." ).Required ().String ()
9091
92+ updateStack = app .Command (UpdateStackMode , "Updates a stack on aws" )
93+ updateStackName = updateStack .Arg ("stack" , "An AWS stack name" ).String ()
94+ updateStackTemplate = updateStack .Arg ("template" , "A path to the template file." ).String ()
95+ updateStackImpName = updateStack .Flag ("stack" , "Sn AWS stack name." ).String ()
96+ updateStackImpTemplate = updateStack .Flag ("template" , "A path to the template file." ).String ()
97+ updateStackCapabilities = updateStack .Flag ("capabilities" , "Capabilities: CAPABILITY_IAM | CAPABILITY_NAMED_IAM" ).Enums ("CAPABILITY_IAM" , "CAPABILITY_NAMED_IAM" )
98+
9199 mfaCommand = app .Command (MfaMode , "Create temporary secure credentials with MFA." )
92100 )
93101
@@ -133,6 +141,23 @@ func ParseCliArguments(args []string) (cliArguments CliArguments, err error) {
133141 case mfaCommand .FullCommand ():
134142 cliArguments .Mode = & MfaMode
135143
144+ // update Stack
145+ case updateStack .FullCommand ():
146+ cliArguments .Mode = & UpdateStackMode
147+ cliArguments .Capabilities = updateStackCapabilities
148+ if len (* updateStackImpTemplate ) > 0 && len (* updateStackImpName ) > 0 {
149+ cliArguments .Stack = updateStackImpName
150+ cliArguments .TemplatePath = updateStackImpTemplate
151+ } else if len (* updateStackName ) > 0 && len (* updateStackTemplate ) > 0 {
152+ cliArguments .Stack = updateStackName
153+ cliArguments .TemplatePath = updateStackTemplate
154+ } else if len (* updateStackName ) > 0 && len (* updateStackImpTemplate ) > 0 {
155+ cliArguments .Stack = updateStackName
156+ cliArguments .TemplatePath = updateStackImpTemplate
157+ } else {
158+ err = errors .New ("You have to specify stack name and template file, try --help" )
159+ return
160+ }
136161 }
137162
138163 // OTHER FLAGS
0 commit comments