Skip to content

Commit 7e82c46

Browse files
authored
Merge pull request #12 from crazy-max/fix-copyfile
fix desync file copying
2 parents cc5eaf0 + 1ceaf72 commit 7e82c46

File tree

4 files changed

+18
-11
lines changed

4 files changed

+18
-11
lines changed

clidocstool.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,21 +88,17 @@ func fileExists(f string) bool {
8888
return !info.IsDir()
8989
}
9090

91-
func copyFile(src string, dest string) error {
92-
srcFile, err := os.Open(src)
91+
func copyFile(src string, dst string) error {
92+
sf, err := os.Open(src)
9393
if err != nil {
9494
return err
9595
}
96-
defer srcFile.Close()
97-
98-
destFile, err := os.Create(dest)
96+
defer sf.Close()
97+
df, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY, 0o600)
9998
if err != nil {
10099
return err
101100
}
102-
defer destFile.Close()
103-
104-
if _, err = io.Copy(destFile, srcFile); err != nil {
105-
return err
106-
}
107-
return destFile.Sync()
101+
defer df.Close()
102+
_, err = io.Copy(df, sf)
103+
return err
108104
}

clidocstool_md_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ func TestGenMarkdownTree(t *testing.T) {
3131
require.NoError(t, err)
3232
defer os.RemoveAll(tmpdir)
3333

34+
err = copyFile(path.Join("fixtures", "buildx_stop.pre.md"), path.Join(tmpdir, "buildx_stop.md"))
35+
require.NoError(t, err)
36+
3437
c, err := New(Options{
3538
Root: buildxCmd,
3639
SourceDir: tmpdir,

clidocstool_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ func TestGenAllTree(t *testing.T) {
110110
require.NoError(t, err)
111111
defer os.RemoveAll(tmpdir)
112112

113+
err = copyFile(path.Join("fixtures", "buildx_stop.pre.md"), path.Join(tmpdir, "buildx_stop.md"))
114+
require.NoError(t, err)
115+
113116
c, err := New(Options{
114117
Root: buildxCmd,
115118
SourceDir: tmpdir,

fixtures/buildx_stop.pre.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# docker buildx stop
2+
3+
<!---MARKER_GEN_START-->
4+
<!---MARKER_GEN_END-->
5+

0 commit comments

Comments
 (0)