diff options
| author | Shulhan <ms@kilabit.info> | 2021-10-02 00:18:50 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2021-10-02 00:18:50 +0700 |
| commit | 8be5543e70932d4af49c784c08cfa11809c705a9 (patch) | |
| tree | e0fbe2136ecdf63b9ad4556424feab640cabb0de | |
| parent | c94d6ba835c7c46890c5d14e4e089fa6ddabc900 (diff) | |
| download | pakakeh.go-8be5543e70932d4af49c784c08cfa11809c705a9.tar.xz | |
lib/memfs: check error on File Close on GoGenerate
Previously, we ignore the error for call to Close when there is an
error in previous operation.
This changes check the error returned from Close and add it to the
returned error message.
While at it, use consisten prefix for all returned error:
"MemFS.GoGenerate".
| -rw-r--r-- | lib/memfs/generate.go | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/lib/memfs/generate.go b/lib/memfs/generate.go index ff3c088a..cb141086 100644 --- a/lib/memfs/generate.go +++ b/lib/memfs/generate.go @@ -42,6 +42,8 @@ type generateData struct { // file using gzip and set Node.ContentEncoding to "gzip". // func (mfs *MemFS) GoGenerate(pkgName, varName, out, contentEncoding string) (err error) { + logp := "MemFS.GoGenerate" + if len(pkgName) == 0 { pkgName = DefaultGenPackageName } @@ -59,18 +61,18 @@ func (mfs *MemFS) GoGenerate(pkgName, varName, out, contentEncoding string) (err tmpl, err := generateTemplate() if err != nil { - return err + return fmt.Errorf("%s: %w", logp, err) } f, err := os.Create(out) if err != nil { - return fmt.Errorf("memfs: GoGenerate: %w", err) + return fmt.Errorf("%s: %w", logp, err) } if len(contentEncoding) > 0 { err = mfs.ContentEncode(contentEncoding) if err != nil { - return fmt.Errorf("GoGenerate: %w", err) + return fmt.Errorf("%s: %w", logp, err) } } @@ -107,13 +109,16 @@ func (mfs *MemFS) GoGenerate(pkgName, varName, out, contentEncoding string) (err goto fail } - err = f.Close() +fail: + errClose := f.Close() + if errClose != nil { + if err != nil { + return fmt.Errorf("%s: %s: %w", logp, errClose, err) + } + return fmt.Errorf("%s: %w", logp, errClose) + } if err != nil { - return fmt.Errorf("memfs: GoGenerate: %w", err) + return fmt.Errorf("%s: %w", logp, err) } - return nil -fail: - _ = f.Close() - return fmt.Errorf("memfs: GoGenerate: %w", err) } |
