MCPcopy Create free account
hub / github.com/dropbox/dbxcli / prepareLsEntries

Function prepareLsEntries

cmd/ls.go:241–276  ·  view source on GitHub ↗
(dbx filesClient, entries []files.IsMetadata, onlyDeleted bool)

Source from the content-addressed store, hash-verified

239}
240
241func prepareLsEntries(dbx filesClient, entries []files.IsMetadata, onlyDeleted bool) ([]files.IsMetadata, error) {
242 var filtered []files.IsMetadata
243 for _, entry := range entries {
244 deletedItem, isDeleted := entry.(*files.DeletedMetadata)
245 if isDeleted {
246 revisionArg := files.NewListRevisionsArg(deletedItem.PathLower)
247 res, err := dbx.ListRevisionsContext(currentContext(), revisionArg)
248 if err != nil {
249 if isListRevisionsNotFileError(err) {
250 // Don't treat a "not_file" error as fatal; recover by sending a
251 // get_metadata request for the same path and using that response instead.
252 revision, err := getFileMetadata(dbx, deletedItem.PathLower)
253 if err != nil {
254 return nil, err
255 }
256 entry = revision
257 }
258 } else if len(res.Entries) == 0 {
259 // Occasionally revisions will be returned with an empty Revision entry list.
260 // So we just use the original entry.
261 } else {
262 entry = res.Entries[0]
263 }
264 setPathDisplayAsDeleted(entry)
265 }
266 switch entry.(type) {
267 case *files.FileMetadata, *files.FolderMetadata:
268 if !onlyDeleted || isDeleted {
269 filtered = append(filtered, entry)
270 }
271 case *files.DeletedMetadata:
272 filtered = append(filtered, entry)
273 }
274 }
275 return filtered, nil
276}
277
278func renderLsOutput(cmd *cobra.Command, path string, arg *files.ListFolderArg, onlyDeleted bool, opts listOptions, entries []files.IsMetadata) error {
279 out := commandOutput(cmd)

Callers 2

finalizeLsEntriesFunction · 0.85

Calls 5

currentContextFunction · 0.85
getFileMetadataFunction · 0.85
setPathDisplayAsDeletedFunction · 0.85
ListRevisionsContextMethod · 0.65

Tested by

no test coverage detected