Skip to content

Commit 0eacab1

Browse files
committed
Working aws_ssm plugin
1 parent d9825ef commit 0eacab1

2 files changed

Lines changed: 13 additions & 64 deletions

File tree

aws_ssm/parameters.go

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package aws_ssm
22

33
import (
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-
}

checkenv.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func main() {
6464
showFlags := flag.NewFlagSet("show", flag.ExitOnError)
6565
showHelp := showFlags.Bool("h", false, "Use this flag if you want help with this command")
6666
showFlags.BoolVar(showHelp, "help", false, "Use this flag if you want help with this command")
67+
showExport := showFlags.Bool("export", false, "Use this flag to prepend and \"export \" before every environment variable definition")
6768

6869
availableCommands := fmt.Sprintf("%s,%s", pluginsCommand, showCommand)
6970

@@ -100,21 +101,27 @@ func main() {
100101
}
101102
providedVars[providerSpec] = vars
102103
}
104+
105+
exportPrefix := ""
106+
if *showExport {
107+
exportPrefix = "export "
108+
}
109+
103110
for providerSpec := range spec.providersFull {
104-
fmt.Printf("%s - all variables:\n", providerSpec)
111+
fmt.Printf("# %s - all variables:\n", providerSpec)
105112
for k, v := range providedVars[providerSpec] {
106-
fmt.Printf("- %s=%s\n", k, v)
113+
fmt.Printf("%s%s=%s\n", exportPrefix, k, v)
107114
}
108115
}
109116
for providerSpec, queriedVars := range spec.providerVars {
110-
fmt.Printf("%s - specific variables:\n", providerSpec)
117+
fmt.Printf("# %s - specific variables:\n", providerSpec)
111118
definedVars := providedVars[providerSpec]
112119
for k := range queriedVars {
113120
v, ok := definedVars[k]
114121
if !ok {
115-
fmt.Printf("- UNDEFINED: %s\n", k)
122+
fmt.Printf("# UNDEFINED: %s\n", k)
116123
} else {
117-
fmt.Printf("- %s=%s\n", k, v)
124+
fmt.Printf("%s%s=%s\n", exportPrefix, k, v)
118125
}
119126
}
120127
}

0 commit comments

Comments
 (0)