diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2020-09-27 13:01:48 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2020-10-09 20:09:18 -0400 |
| commit | 91f0cef6d9856c8b65d3fba0558968ec974719e9 (patch) | |
| tree | 23cc72ebff80a36583ca8824239b49af35fb916f /template.go | |
| parent | a1fe2f98158c746567ae784db2002f800684835f (diff) | |
Fix some Windows file mode issues
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'template.go')
| -rw-r--r-- | template.go | 9 |
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 |
