Skip to content

Commit 91ca81c

Browse files
author
Chris Cooper
committed
adds main file
1 parent 01639d2 commit 91ca81c

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

main.go

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package main
2+
3+
import (
4+
"encoding/json"
5+
"flag"
6+
"fmt"
7+
"io/ioutil"
8+
"os"
9+
"sort"
10+
)
11+
12+
var (
13+
inFile string
14+
outFile string
15+
)
16+
17+
func init() {
18+
flag.StringVar(&inFile, "f", "", "The file to read from to generate parameters")
19+
flag.StringVar(&outFile, "o", "", "Optional: Specify a file name to write out parameters")
20+
}
21+
22+
func main() {
23+
flag.Parse()
24+
25+
if inFile == "" {
26+
fmt.Fprintln(os.Stderr, "Missing required argument -f")
27+
}
28+
29+
m := make(map[string]interface{})
30+
data, err := ioutil.ReadFile(inFile)
31+
if err != nil {
32+
fmt.Fprintln(os.Stderr, err)
33+
os.Exit(-1)
34+
}
35+
err = json.Unmarshal(data, &m)
36+
if err != nil {
37+
fmt.Fprintln(os.Stderr, err)
38+
os.Exit(-1)
39+
}
40+
41+
if _, ok := m["Parameters"]; !ok {
42+
fmt.Fprintln(os.Stderr, "Parameters not found in file")
43+
os.Exit(-1)
44+
}
45+
46+
params := m["Parameters"].(map[string]interface{})
47+
48+
keys := make([]string, 0)
49+
50+
for k := range params {
51+
keys = append(keys, k)
52+
}
53+
54+
sort.Strings(keys)
55+
56+
s := "[\n"
57+
58+
for _, k := range keys {
59+
s += fmt.Sprintf(` {
60+
"ParameterKey": "%s",
61+
"ParameterValue": ""
62+
},
63+
`, k)
64+
}
65+
66+
s += "\n]"
67+
68+
if outFile != "" {
69+
err = ioutil.WriteFile(outFile, []byte(data), 0644)
70+
if err != nil {
71+
fmt.Fprintln(os.Stderr, err)
72+
}
73+
} else {
74+
fmt.Print(s)
75+
}
76+
77+
}

0 commit comments

Comments
 (0)