• W. Trevor King's avatar
    core/commands/unixfs/ls: Don't recurse into chunked files · 663f37cb
    W. Trevor King authored
    Folks operating at the Unix-filesystem level shouldn't care about that
    level of Merkle-DAG detail.  Before this commit we had:
    
      $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
      /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
      ... several lines of empty-string names ...
    
    And with this commit we have:
    
      $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
      /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
    
    I also reworked the argument-prefixing (object.Argument) in the output
    marshaller to avoid redundancies like:
    
      $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
      /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
      /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
    
    As a side-effect of this rework, we no longer have the trailing blank
    line that we used to have after the final directory listing.
    
    The new ErrImplementation is like Python's NotImplementedError, and is
    mostly a way to guard against external changes that would need
    associated updates in this code.  For example, once we see something
    that's neither a file nor a directory, we'll have to update the switch
    statement to handle those objects.
    
    License: MIT
    Signed-off-by: default avatarW. Trevor King <wking@tremily.us>
    663f37cb
t0200-unixfs-ls.sh 2.45 KB