File tree Expand file tree Collapse file tree 3 files changed +56
-7
lines changed Expand file tree Collapse file tree 3 files changed +56
-7
lines changed Original file line number Diff line number Diff line change @@ -63,6 +63,44 @@ Printing output to command line:
6363 "ParameterValue": "Type: String"
6464 }
6565 ]
66+
67+ Accept input over stdin:
68+
69+ $ cat test.json | cf_parameter_generator
70+ [
71+ {
72+ "ParameterKey": "AccessControl",
73+ "ParameterValue": "Type: String"
74+ },
75+ {
76+ "ParameterKey": "ApplicationName",
77+ "ParameterValue": "Type: String"
78+ },
79+ {
80+ "ParameterKey": "AssetID",
81+ "ParameterValue": "Type: String"
82+ },
83+ {
84+ "ParameterKey": "Environment",
85+ "ParameterValue": "Type: String"
86+ },
87+ {
88+ "ParameterKey": "LifecycleConfigurationStatus",
89+ "ParameterValue": "Type: String"
90+ },
91+ {
92+ "ParameterKey": "NoncurrentVersionExpirationInDays",
93+ "ParameterValue": "Type: Number"
94+ },
95+ {
96+ "ParameterKey": "SubnetIDs",
97+ "ParameterValue": "Type: List< AWS::EC2::Subnet::Id > "
98+ },
99+ {
100+ "ParameterKey": "VersioningConfigurationStatus",
101+ "ParameterValue": "Type: String"
102+ }
103+ ]
66104
67105Saving output to a new file (will update an existing file or overwrite it if it is blank (0 bytes))
68106
Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ import (
1414
1515 "bytes"
1616
17+ "io"
18+
1719 "gopkg.in/yaml.v2"
1820)
1921
@@ -36,17 +38,26 @@ type Config struct {
3638}
3739
3840// Generate generates a cloud formation parameters file template and writes either to a file or stdout
39- func Generate (c * Config ) error {
41+ func Generate (c * Config , reader io. Reader ) error {
4042 flag .Parse ()
41-
42- if c .InFile == "" {
43+ var data []byte
44+ var err error
45+ if reader != nil {
46+ data , err = ioutil .ReadAll (reader )
47+ if err != nil {
48+ return err
49+ }
50+ }
51+ if c .InFile == "" && reader == nil {
4352 return ErrMissingInFile
4453 }
4554
4655 m := make (map [string ]interface {})
47- data , err := ioutil .ReadFile (c .InFile )
48- if err != nil {
49- return err
56+ if data == nil {
57+ data , err = ioutil .ReadFile (c .InFile )
58+ if err != nil {
59+ return err
60+ }
5061 }
5162 err = c .unmarshal (data , & m )
5263 if err != nil {
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ func config() *cfpgen.Config {
3939}
4040
4141func main () {
42- err := cfpgen .Generate (config ())
42+ err := cfpgen .Generate (config (), os . Stdin )
4343 if err != nil {
4444 fmt .Fprintln (os .Stderr , err )
4545 flag .Usage ()
You can’t perform that action at this time.
0 commit comments