1package replica
2
3import (
4 "errors"
5 "io/fs"
6 "os"
7 "path/filepath"
8)
9
10func DropEmptyRefs(repo string) error {
11 err := filepath.WalkDir(filepath.Join(repo, "refs"), func(p string, d fs.DirEntry, err error) error {
12 if err != nil || !d.Type().IsRegular() {
13 return err
14 }
15 fi, err := d.Info()
16 if err != nil {
17 return err
18 }
19 if fi.Size() == 0 {
20 return os.Remove(p)
21 }
22 return nil
23 })
24 if errors.Is(err, fs.ErrNotExist) {
25 return nil
26 }
27 return err
28}