From 91f0cef6d9856c8b65d3fba0558968ec974719e9 Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Sun, 27 Sep 2020 13:01:48 -0400 Subject: Fix some Windows file mode issues Signed-off-by: Dave Henderson --- template.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'template.go') diff --git a/template.go b/template.go index 448eff84..7d1e1bbf 100644 --- a/template.go +++ b/template.go @@ -243,15 +243,16 @@ func openOutFile(cfg *config.Config, filename string, mode os.FileMode, modeOver } func createOutFile(filename string, mode os.FileMode, modeOverride bool) (out io.WriteCloser, err error) { + mode = config.NormalizeFileMode(mode.Perm()) if modeOverride { - err = fs.Chmod(filename, mode.Perm()) + err = fs.Chmod(filename, mode) if err != nil && !os.IsNotExist(err) { - return nil, fmt.Errorf("failed to chmod output file '%s' with mode %q: %w", filename, mode.Perm(), err) + return nil, fmt.Errorf("failed to chmod output file '%s' with mode %q: %w", filename, mode, err) } } open := func() (out io.WriteCloser, err error) { - out, err = fs.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode.Perm()) + out, err = fs.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode) if err != nil { return out, fmt.Errorf("failed to open output file '%s' for writing: %w", filename, err) } @@ -271,7 +272,7 @@ func createOutFile(filename string, mode os.FileMode, modeOverride bool) (out io } out = iohelpers.SameSkipper(iohelpers.LazyReadCloser(func() (io.ReadCloser, error) { - return fs.OpenFile(filename, os.O_RDONLY, mode.Perm()) + return fs.OpenFile(filename, os.O_RDONLY, mode) }), open) return out, err -- cgit v1.2.3