浏览代码

Fix empty file when using compose config in case of smaller source files

"docker compose config --output out.yml" resulted an empty file
when the generated output was smaller than 4097 bytes.
bufio.Writer doesn't seem necessary since only one write operation will happen.
This way there is no need for a new bufio.Writer that could be flushed.

Thanks for @thaJeztah for the idea of using os.WriteFile

Issue https://github.com/docker/compose/issues/10121

Signed-off-by: Ákos Takács <[email protected]>
Ákos Takács 2 年之前
父节点
当前提交
ffce33ec11
共有 1 个文件被更改,包括 2 次插入9 次删除
  1. 2 9
      cmd/compose/convert.go

+ 2 - 9
cmd/compose/convert.go

@@ -17,11 +17,9 @@
 package compose
 
 import (
-	"bufio"
 	"bytes"
 	"context"
 	"fmt"
-	"io"
 	"os"
 	"sort"
 	"strings"
@@ -139,15 +137,10 @@ func runConvert(ctx context.Context, streams api.Streams, backend api.Service, o
 		return nil
 	}
 
-	var out io.Writer = streams.Out()
 	if opts.Output != "" && len(content) > 0 {
-		file, err := os.Create(opts.Output)
-		if err != nil {
-			return err
-		}
-		out = bufio.NewWriter(file)
+		return os.WriteFile(opts.Output, content, 0o666)
 	}
-	_, err = fmt.Fprint(out, string(content))
+	_, err = fmt.Fprint(streams.Out(), string(content))
 	return err
 }