Skip to content

Commit d5dc76e

Browse files
authored
fix: properly read stdin in convert prerun (#28)
1 parent f241a18 commit d5dc76e

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

cmd/convert.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ func init() {
3535
var convertCmd = newConvertCmd()
3636

3737
func newConvertCmd() *cobra.Command {
38+
var cfgData []byte
3839
res := &cobra.Command{
3940
Use: "convert [flags] <path/to/config_file>",
4041
Short: "Convert between yaml and Aerospike config format.",
@@ -91,11 +92,6 @@ func newConvertCmd() *cobra.Command {
9192

9293
logger.Debugf("Processing flag format value=%v", srcFormat)
9394

94-
fdata, err := os.ReadFile(srcPath)
95-
if err != nil {
96-
return err
97-
}
98-
9995
var outFmt asconf.Format
10096
switch srcFormat {
10197
case asconf.AsConfig:
@@ -109,14 +105,14 @@ func newConvertCmd() *cobra.Command {
109105
// if the version option is empty,
110106
// try populating from the metadata
111107
if version == "" {
112-
version, err = getMetaDataItem(fdata, metaKeyAerospikeVersion)
108+
version, err = getMetaDataItem(cfgData, metaKeyAerospikeVersion)
113109
if err != nil && !force {
114110
return errors.Join(errMissingAerospikeVersion, err)
115111
}
116112
}
117113

118114
conf, err := asconf.NewAsconf(
119-
fdata,
115+
cfgData,
120116
srcFormat,
121117
outFmt,
122118
version,
@@ -142,7 +138,7 @@ func newConvertCmd() *cobra.Command {
142138

143139
// prepend metadata to the config output
144140
mtext, err := genMetaDataText(metaDataArgs{
145-
src: fdata,
141+
src: cfgData,
146142
aerospikeVersion: version,
147143
asconfigVersion: VERSION,
148144
})
@@ -215,7 +211,15 @@ func newConvertCmd() *cobra.Command {
215211
return err
216212
}
217213

218-
cfgData, err := os.ReadFile(args[0])
214+
// read stdin by default
215+
var srcPath string
216+
if len(args) == 0 {
217+
srcPath = os.Stdin.Name()
218+
} else {
219+
srcPath = args[0]
220+
}
221+
222+
cfgData, err = os.ReadFile(srcPath)
219223
if err != nil {
220224
return err
221225
}

0 commit comments

Comments
 (0)