diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-10-21 06:05:36 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-10-21 06:05:36 +0900 |
| commit | ea978101b13a3617914f5a62c0f0e2f53967a3c0 (patch) | |
| tree | 29caa69885ad8c5a4dcbf2fe01b9343980a5e3ec /cmd | |
| parent | fbd1638e7fb7a65b3ca741cc94feaca514d1a9c7 (diff) | |
cmd/hakurei/parse: close config fd
This is cleaner than relying on the finalizer.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/hakurei/parse.go | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/cmd/hakurei/parse.go b/cmd/hakurei/parse.go index f93ac6eb..4a24c90a 100644 --- a/cmd/hakurei/parse.go +++ b/cmd/hakurei/parse.go @@ -16,7 +16,7 @@ import ( ) func tryPath(msg message.Msg, name string) (config *hst.Config) { - var r io.Reader + var r io.ReadCloser config = new(hst.Config) if name != "-" { @@ -25,23 +25,20 @@ func tryPath(msg message.Msg, name string) (config *hst.Config) { msg.Verbose("load configuration from file") if f, err := os.Open(name); err != nil { - log.Fatalf("cannot access configuration file %q: %s", name, err) + log.Fatal(err.Error()) + return } else { - // finalizer closes f r = f } - } else { - defer func() { - if err := r.(io.ReadCloser).Close(); err != nil { - log.Printf("cannot close config fd: %v", err) - } - }() } } else { r = os.Stdin } decodeJSON(log.Fatal, "load configuration", r, &config) + if err := r.Close(); err != nil { + log.Fatal(err.Error()) + } return } |
