@cryptotaxi247 / kubo / commits / 2fbb4515d

Fix "ipfs ls" to once again work on arbitrary dag objects.

License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>

Kevin Atkinson committed Aug 29, 2017 at 23:04 UTC 2fbb4515d9379553c8fbc5fe64c842b49f62871a
2 files changed +23 -5
core/commands/ls.go
+10 -5
@@ -106,15 +106,20 @@ The JSON output contains type information.
106 output := make([]LsObject, len(req.Arguments()))
107 for i, dagnode := range dagnodes {
108 dir, err := uio.NewDirectoryFromNode(nd.DAG, dagnode)
109 - if err != nil {
109 + if err != nil && err != uio.ErrNotADir {
110 res.SetError(err, cmds.ErrNormal)
111 return
112 }
113
114 - links, err := dir.Links(req.Context())
115 - if err != nil {
116 - res.SetError(err, cmds.ErrNormal)
117 - return
114 + var links []*node.Link
115 + if dir == nil {
116 + links = dagnode.Links()
117 + } else {
118 + links, err = dir.Links(req.Context())
119 + if err != nil {
120 + res.SetError(err, cmds.ErrNormal)
121 + return
122 + }
123 }
124
125 output[i] = LsObject{
test/sharness/t0045-ls.sh
+13
@@ -101,15 +101,28 @@ test_ls_cmd_raw_leaves() {
101 '
102 }
103
104 +test_ls_object() {
105 + test_expect_success "ipfs add medium size file then 'ipfs ls' works as expected" '
106 + random 500000 2 > somefile &&
107 + HASH=$(ipfs add somefile -q) &&
108 + echo "QmPrM8S5T7Q3M8DQvQMS7m41m3Aq4jBjzAzvky5fH3xfr4 262158 " > ls-expect &&
109 + echo "QmdaAntAzQqqVMo4B8V69nkQd5d918YjHXUe2oF6hr72ri 237870 " >> ls-expect &&
110 + ipfs ls $HASH > ls-actual &&
111 + test_cmp ls-actual ls-expect
112 + '
113 +}
114 +
115 # should work offline
116 test_ls_cmd
117 test_ls_cmd_raw_leaves
118 +test_ls_object
119
120 # should work online
121 test_launch_ipfs_daemon
122 test_ls_cmd
123 test_ls_cmd_raw_leaves
124 test_kill_ipfs_daemon
125 +test_ls_object
126
127 #
128 # test for ls --resolve-type=false