func indexSchemaBlob(fsck *db.DB, s *schema.Blob) (needs []string) { camliType := s.Type() switch camliType { case "static-set": for _, r := range s.StaticSetMembers() { needs = append(needs, r.String()) } case "bytes": fallthrough case "file": for i, bp := range s.ByteParts() { ok := false if r := bp.BlobRef; r.Valid() { needs = append(needs, r.String()) ok = true } if r := bp.BytesRef; r.Valid() { needs = append(needs, r.String()) ok = true } if !ok { log.Printf("%s (%s): no valid ref in part %d", s.BlobRef(), camliType, i) } } case "directory": switch r, ok := s.DirectoryEntries(); { case !ok: log.Printf("%s (%s): bad entries", s.BlobRef(), camliType) case !r.Valid(): log.Printf("%s (%s): invalid entries", s.BlobRef(), camliType) default: needs = append(needs, r.String()) } } return }