fix(tooling): migrate 'kythe ls' filters from deprecated FileTree API (#3566)
diff --git a/kythe/go/services/cli/command_ls.go b/kythe/go/services/cli/command_ls.go
index c82c976..a7c06b6 100644
--- a/kythe/go/services/cli/command_ls.go
+++ b/kythe/go/services/cli/command_ls.go
@@ -83,14 +83,25 @@
}
if c.filesOnly {
- dir.Subdirectory = nil
+ dir.Entry = filterEntries(dir.Entry, ftpb.DirectoryReply_FILE)
} else if c.dirsOnly {
- dir.File = nil
+ dir.Entry = filterEntries(dir.Entry, ftpb.DirectoryReply_DIRECTORY)
}
return c.displayDirectory(dir)
}
+func filterEntries(entries []*ftpb.DirectoryReply_Entry, kind ftpb.DirectoryReply_Kind) []*ftpb.DirectoryReply_Entry {
+ var j int
+ for _, e := range entries {
+ if e.Kind == kind {
+ entries[j] = e
+ j++
+ }
+ }
+ return entries[:j]
+}
+
func (c lsCommand) displayCorpusRoots(cr *ftpb.CorpusRootsReply) error {
if DisplayJSON {
return PrintJSONMessage(cr)