MCPcopy
hub / github.com/syncthing/syncthing / pruneInterfaceCheck

Function pruneInterfaceCheck

script/prune_mocks.go:46–78  ·  view source on GitHub ↗
(path string, size int64)

Source from the content-addressed store, hash-verified

44}
45
46func pruneInterfaceCheck(path string, size int64) error {
47 fd, err := os.Open(path)
48 if err != nil {
49 return err
50 }
51 defer fd.Close()
52
53 tmp, err := os.CreateTemp(".", "")
54 if err != nil {
55 return err
56 }
57
58 scanner := bufio.NewScanner(fd)
59
60 for scanner.Scan() {
61 line := scanner.Text()
62 if strings.HasPrefix(strings.TrimSpace(line), "var _ ") {
63 continue
64 }
65 if _, err := tmp.WriteString(line + "\n"); err != nil {
66 os.Remove(tmp.Name())
67 return err
68 }
69 }
70
71 if err := fd.Close(); err != nil {
72 return err
73 }
74 if err := os.Remove(path); err != nil {
75 return err
76 }
77 return os.Rename(tmp.Name(), path)
78}

Callers 1

mainFunction · 0.85

Calls 6

OpenMethod · 0.65
CloseMethod · 0.65
ScanMethod · 0.65
RemoveMethod · 0.65
NameMethod · 0.65
RenameMethod · 0.65

Tested by

no test coverage detected