10 func index() *os.File {
11 tmp0, err := os.CreateTemp("", "glocate-idx")
15 defer os.Remove(tmp0.Name())
17 entsWalker := make(chan Ent, 1<<10)
18 entsWriter := make(chan Ent, 1<<10)
19 dirSizerJob := make(chan struct{})
21 entsWalker <- Ent{name: []string{"./"}}
22 sinkBack := make(chan Ent, 1)
24 dirSizer(&dirSizes, 1, sinkBack, entsWalker, entsWriter)
28 bw := bufio.NewWriterSize(tmp0, 1<<17)
29 writerJob := make(chan struct{})
31 writer(bw, entsWriter)
35 walkerStatusStop := make(chan struct{})
36 go walkerStatus(walkerStatusStop)
37 err = walker(entsWalker, []string{"./"})
38 walkerStatusStop <- struct{}{}
48 if err = bw.Flush(); err != nil {
52 tmp1 := applyDirSizes(tmp0, dirSizes)