diff --git a/cmd/convert.go b/cmd/convert.go index 42df78f5d..5592696f8 100644 --- a/cmd/convert.go +++ b/cmd/convert.go @@ -3,6 +3,7 @@ package cmd import ( "fmt" "os" + "path/filepath" "github.com/kong/deck/convert" "github.com/kong/deck/cprint" @@ -16,6 +17,7 @@ var ( convertCmdInputFile string convertCmdOutputFile string convertCmdInputFolder string + convertCmdOutputFolder string ) // newConvertCmd represents the convert command @@ -54,7 +56,12 @@ can be converted into a 'konnect' configuration file.`, return fmt.Errorf("getting files from directory: %w", err) } for _, filename := range files { - outputFile := filename + ".converted" + outputFile := filepath.Join(convertCmdOutputFolder, filepath.Base(filename)) + if _, err := os.Stat(convertCmdOutputFolder); os.IsNotExist(err) { + if err := os.Mkdir(convertCmdOutputFolder, 0o700); err != nil { + return fmt.Errorf("creating output folder: %w", err) + } + } err = convert.Convert(filename, outputFile, sourceFormat, destinationFormat) if err != nil { return fmt.Errorf("converting '%s' file: %v", filename, err) @@ -81,7 +88,9 @@ can be converted into a 'konnect' configuration file.`, convertCmd.Flags().StringVar(&convertCmdOutputFile, "output-file", "", "file to write configuration to after conversion. Use `-` to write to stdout.") convertCmd.Flags().StringVar(&convertCmdInputFolder, "input-folder", "", - "configuration folder to be converted. decK will append `.converted` to converted files.") + "configuration folder to be converted.") + convertCmd.Flags().StringVar(&convertCmdOutputFolder, "output-folder", "", + "folder to write configuration to after conversion.") return convertCmd }