summaryrefslogtreecommitdiff
path: root/internal/export
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-06 16:20:23 +0200
committerPaul Buetow <paul@buetow.org>2026-03-06 16:20:23 +0200
commitc1814dafe443c9042ebfee99b7e14c4723ce9db3 (patch)
treed0cb6bf9de0fdf225b0e9fdf1b9c1b11c1d28590 /internal/export
parent3348148ea989f3141e9c4cd3b68033e64cd7c276 (diff)
fix: surface snapshot export close errors (task 395)
Diffstat (limited to 'internal/export')
-rw-r--r--internal/export/snapshot_csv.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/internal/export/snapshot_csv.go b/internal/export/snapshot_csv.go
index 3983b85..591bd67 100644
--- a/internal/export/snapshot_csv.go
+++ b/internal/export/snapshot_csv.go
@@ -2,6 +2,7 @@ package export
import (
"encoding/csv"
+ "errors"
"fmt"
"os"
"time"
@@ -10,13 +11,17 @@ import (
)
// SnapshotCSV writes a dashboard snapshot to a timestamped CSV file.
-func SnapshotCSV(snap *statsengine.Snapshot) (string, error) {
- filename := fmt.Sprintf("ior-snapshot-%s.csv", time.Now().Format("20060102-150405"))
+func SnapshotCSV(snap *statsengine.Snapshot) (filename string, retErr error) {
+ filename = fmt.Sprintf("ior-snapshot-%s.csv", time.Now().Format("20060102-150405"))
f, err := os.Create(filename)
if err != nil {
return "", err
}
- defer f.Close()
+ defer func() {
+ if err := f.Close(); err != nil {
+ retErr = errors.Join(retErr, fmt.Errorf("close %s: %w", filename, err))
+ }
+ }()
w := csv.NewWriter(f)