Centralize deterministic JSON file writing

This commit is contained in:
2026-05-24 14:57:12 +00:00
parent ab4b252b08
commit c8efdb53d3
6 changed files with 105 additions and 54 deletions

View File

@@ -8,6 +8,7 @@ import (
"sort"
"gitea.maximumdirect.net/eric/seriatim/internal/config"
"gitea.maximumdirect.net/eric/seriatim/internal/jsonfile"
"gitea.maximumdirect.net/eric/seriatim/internal/report"
)
@@ -85,7 +86,7 @@ func Run(ctx context.Context, cfg config.TrimConfig) error {
return fmt.Errorf("validate trimmed output: %w", err)
}
if err := writeOutputJSON(cfg.OutputFile, outputArtifact.Value()); err != nil {
if err := jsonfile.Write(cfg.OutputFile, outputArtifact.Value()); err != nil {
return err
}
@@ -137,18 +138,6 @@ func Run(ctx context.Context, cfg config.TrimConfig) error {
return nil
}
func writeOutputJSON(path string, value any) error {
file, err := os.Create(path)
if err != nil {
return err
}
defer file.Close()
enc := json.NewEncoder(file)
enc.SetIndent("", " ")
return enc.Encode(value)
}
func orderedIDMapping(mapping map[int]int) []idMapping {
keys := make([]int, 0, len(mapping))
for oldID := range mapping {