in internal/file_cleaner/file_cleaner.go [90:135]
func (c *FileCleaner) removeDeletedRepos(ctx context.Context) error {
path := filepath.Join(c.IndexDir, repoDeleteDir)
err := c.ensurePathExists(path)
if err != nil {
return err
}
files, err := disk_stats.GetIndexFiles(path, "*")
if err != nil {
return err
}
repoIDs := make([]uint32, 0, len(files))
for _, file := range files {
fileName := filepath.Base(file)
repoIDStr := IDRegex.FindString(fileName)
if repoIDStr == "" {
return fmt.Errorf("failed to parse repo ID from %s", repoIDStr)
}
rID, err := strconv.ParseUint(repoIDStr, 10, 32)
if err != nil {
return err
}
repoIDs = append(repoIDs, uint32(rID))
}
if err := c.removeShards(ctx, repoIDs...); err != nil {
return err
}
for _, repoID := range repoIDs {
filePath := filepath.Join(path, fmt.Sprintf("%d.delete", repoID))
if err := c.removeFunc(filePath); err != nil {
return err
}
}
return nil
}