@@ -53,27 +53,40 @@ Outputs to STDOUT unless the inplace flag is used, in which case the file is upd
53
53
}
54
54
55
55
func readProperty (cmd * cobra.Command , args []string ) {
56
+ printYaml (read (args ))
57
+ }
58
+
59
+ func read (args []string ) interface {} {
56
60
var parsedData map [interface {}]interface {}
57
61
58
62
readYaml (args [0 ], & parsedData )
59
63
60
64
if len (args ) == 1 {
61
- printYaml (parsedData )
62
- os .Exit (0 )
65
+ return parsedData
63
66
}
64
67
65
68
var paths = parsePath (args [1 ])
66
69
67
- printYaml ( readMap (parsedData , paths [0 ], paths [1 :len (paths )]) )
70
+ return readMap (parsedData , paths [0 ], paths [1 :len (paths )])
68
71
}
69
72
70
73
func writeProperty (cmd * cobra.Command , args []string ) {
74
+ updatedData := updateYaml (args )
75
+ if writeInplace {
76
+ ioutil .WriteFile (args [0 ], []byte (yamlToString (updatedData )), 0644 )
77
+ } else {
78
+ printYaml (updatedData )
79
+ }
80
+ }
81
+
82
+ func updateYaml (args []string ) interface {} {
71
83
var writeCommands map [string ]interface {}
72
84
if writeScript != "" {
73
85
readYaml (writeScript , & writeCommands )
74
86
} else if len (args ) < 3 {
75
87
die ("Must provide <filename> <path_to_update> <value>" )
76
88
} else {
89
+ writeCommands = make (map [string ]interface {})
77
90
writeCommands [args [1 ]] = parseValue (args [2 ])
78
91
}
79
92
@@ -84,13 +97,9 @@ func writeProperty(cmd *cobra.Command, args []string) {
84
97
var paths = parsePath (path )
85
98
write (parsedData , paths [0 ], paths [1 :len (paths )], value )
86
99
}
87
-
88
- if writeInplace {
89
- ioutil .WriteFile (args [0 ], []byte (yamlToString (parsedData )), 0644 )
90
- } else {
91
- printYaml (parsedData )
92
- }
100
+ return parsedData
93
101
}
102
+
94
103
func parseValue (argument string ) interface {} {
95
104
var value , err interface {}
96
105
var inQuotes = argument [0 ] == '"'
0 commit comments