summaryrefslogtreecommitdiff
path: root/template.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2020-09-27 13:01:48 -0400
committerDave Henderson <dhenderson@gmail.com>2020-10-09 20:09:18 -0400
commit91f0cef6d9856c8b65d3fba0558968ec974719e9 (patch)
tree23cc72ebff80a36583ca8824239b49af35fb916f /template.go
parenta1fe2f98158c746567ae784db2002f800684835f (diff)
Fix some Windows file mode issues
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'template.go')
-rw-r--r--template.go9
1 files changed, 5 insertions, 4 deletions
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