@@ -2,11 +2,9 @@ package aws_ssm
22
33import (
44 "context"
5- "flag"
65 "fmt"
76 "log"
87 "os"
9- "os/signal"
108 "strings"
119
1210 "github.com/aws/aws-sdk-go-v2/service/ssm"
@@ -79,7 +77,7 @@ func FetchKeysOfParameters(
7977 if results .NextToken == nil {
8078 break
8179 }
82- describeInput .NextToken = * & results .NextToken
80+ describeInput .NextToken = results .NextToken
8381
8482 n ++
8583 if n >= 50 {
@@ -155,59 +153,3 @@ func WriteToFile(parameters []Parameter, outfile string, update bool, export boo
155153 log .Fatalf ("Unable to write to file %s, error: %s" , outfile , err )
156154 }
157155}
158-
159- // HandleSignals process Ctrl+C and all script interruptions
160- func HandleSignals (cancel context.CancelFunc ) {
161- sigCh := make (chan os.Signal )
162- signal .Notify (sigCh , os .Interrupt )
163- for {
164- sig := <- sigCh
165- switch sig {
166- case os .Interrupt :
167- cancel ()
168- return
169- }
170- }
171- }
172-
173- func Extract () {
174- var flags Flags
175- var filterTagsStr string
176- flag .BoolVar (& flags .Export , "export" , false , "Add prefix 'export' to each parameter" )
177- flag .IntVar (& flags .MaxResults , "max" , 3 , "The maximum number of items to return for call to AWS" )
178- flag .StringVar (& flags .Outfile , "outfile" , "" , "Output file where parameters will be saved" )
179- flag .StringVar (& filterTagsStr , "tags" , "" , "Product tags for filter separated by comma in format 'tagName1:tagValue1,tagName2:tagValue2'" )
180- flag .BoolVar (& flags .Update , "update" , false , "Update existing file if exists (by default the file will be overwritten)" )
181- flag .Parse ()
182-
183- if filterTagsStr == "" {
184- log .Fatalln ("Please specify the tags for filter, at least Product tag" )
185- }
186-
187- // Convert string of tags for filter to key:value structure
188- filterTags := ParseFilterTags (filterTagsStr )
189- flags .FilterTags = filterTags
190-
191- ctx , cancel := context .WithCancel (context .Background ())
192- go HandleSignals (cancel )
193-
194- client := InitAWSClient (ctx )
195-
196- parameterKeys := FetchKeysOfParameters (ctx , client , flags )
197-
198- // Split slice of parameter keys to chunks by 10 (max len allowed by AWS)
199- // and fetch values for required parameters
200- parameterKeyChunks := GenerateChunks (parameterKeys , 10 )
201- if len (parameterKeyChunks ) == 0 {
202- log .Fatalln ("Nothing to generate, empty slice provided" )
203- }
204- parameters := FetchParameters (ctx , client , parameterKeyChunks , flags )
205-
206- if flags .Outfile != "" {
207- WriteToFile (parameters , flags .Outfile , flags .Update , flags .Export )
208- } else {
209- for _ , p := range parameters {
210- fmt .Printf ("%s%s=%s\n " , p .Export , p .Name , p .Value )
211- }
212- }
213- }
0 commit comments