(ctx context.Context, entries1, entries2 []fs.Entry, dirPath string)
| 297 | } |
| 298 | |
| 299 | func (c *Comparer) compareDirectoryEntries(ctx context.Context, entries1, entries2 []fs.Entry, dirPath string) error { |
| 300 | e1byname := map[string]fs.Entry{} |
| 301 | for _, e1 := range entries1 { |
| 302 | e1byname[e1.Name()] = e1 |
| 303 | } |
| 304 | |
| 305 | for _, e2 := range entries2 { |
| 306 | entryName := e2.Name() |
| 307 | if err := c.compareEntry(ctx, e1byname[entryName], e2, dirPath+"/"+entryName); err != nil { |
| 308 | return errors.Wrapf(err, "error comparing %v", entryName) |
| 309 | } |
| 310 | |
| 311 | delete(e1byname, entryName) |
| 312 | } |
| 313 | |
| 314 | // at this point e1byname only has entries present in entries1 but not entries2, those are the deleted ones |
| 315 | for _, e1 := range entries1 { |
| 316 | entryName := e1.Name() |
| 317 | if _, ok := e1byname[entryName]; ok { |
| 318 | if err := c.compareEntry(ctx, e1, nil, dirPath+"/"+entryName); err != nil { |
| 319 | return errors.Wrapf(err, "error comparing %v", entryName) |
| 320 | } |
| 321 | } |
| 322 | } |
| 323 | |
| 324 | return nil |
| 325 | } |
| 326 | |
| 327 | func (c *Comparer) compareFiles(ctx context.Context, f1, f2 fs.File, fname string) error { |
| 328 | if c.DiffCommand == "" { |
no test coverage detected