diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 16:20:23 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 16:20:23 +0200 |
| commit | c1814dafe443c9042ebfee99b7e14c4723ce9db3 (patch) | |
| tree | d0cb6bf9de0fdf225b0e9fdf1b9c1b11c1d28590 /internal | |
| parent | 3348148ea989f3141e9c4cd3b68033e64cd7c276 (diff) | |
fix: surface snapshot export close errors (task 395)
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/export/snapshot_csv.go | 11 |
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) |
