@cryptotaxi247 / kubo / commits / e63c06c89

ls: report real size by default

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>

Łukasz Magiera committed Jan 11, 2019 at 12:49 UTC e63c06c89d40ef21b2abd81171bbe4b674012b56
3 files changed +68 -68
core/commands/ls.go
+4 -4
@@ -44,7 +44,7 @@ type LsOutput struct {
44 const (
45 lsHeadersOptionNameTime = "headers"
46 lsResolveTypeOptionName = "resolve-type"
47 - lsResolveSizeOptionName = "resolve-size"
47 + lsSizeOptionName = "size"
48 lsStreamOptionName = "stream"
49 )
50
@@ -67,7 +67,7 @@ The JSON output contains type information.
67 Options: []cmdkit.Option{
68 cmdkit.BoolOption(lsHeadersOptionNameTime, "v", "Print table headers (Hash, Size, Name)."),
69 cmdkit.BoolOption(lsResolveTypeOptionName, "Resolve linked objects to find out their types.").WithDefault(true),
70 - cmdkit.BoolOption(lsResolveSizeOptionName, "Resolve linked objects to find out their file size.").WithDefault(false),
70 + cmdkit.BoolOption(lsSizeOptionName, "Resolve linked objects to find out their file size.").WithDefault(true),
71 cmdkit.BoolOption(lsStreamOptionName, "s", "Enable exprimental streaming of directory entries as they are traversed."),
72 },
73 Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
@@ -82,7 +82,7 @@ The JSON output contains type information.
82 }
83
84 resolveType, _ := req.Options[lsResolveTypeOptionName].(bool)
85 - resolveSize, _ := req.Options[lsResolveSizeOptionName].(bool)
85 + resolveSize, _ := req.Options[lsSizeOptionName].(bool)
86 dserv := nd.DAG
87 if !resolveType && !resolveSize {
88 offlineexch := offline.Exchange(nd.Blockstore)
@@ -229,7 +229,7 @@ func makeDagNodeLinkResults(req *cmds.Request, dagnode ipld.Node) <-chan unixfs.
229
230 func makeLsLink(req *cmds.Request, dserv ipld.DAGService, resolveType bool, resolveSize bool, link *ipld.Link) (*LsLink, error) {
231 t := unixfspb.Data_DataType(-1)
232 - size := link.Size
232 + var size uint64
233
234 switch link.Cid.Type() {
235 case cid.Raw:
core/coreapi/interface/tests/unixfs.go
+2 -2
@@ -704,8 +704,8 @@ func (tp *provider) TestLs(t *testing.T) {
704 if len(links) != 1 {
705 t.Fatalf("expected 1 link, got %d", len(links))
706 }
707 - if links[0].Size != 23 {
708 - t.Fatalf("expected size = 23, got %d", links[0].Size)
707 + if links[0].Size != 15 {
708 + t.Fatalf("expected size = 15, got %d", links[0].Size)
709 }
710 if links[0].Name != "name-of-file" {
711 t.Fatalf("expected name = name-of-file, got %s", links[0].Name)
test/sharness/t0045-ls.sh
+62 -62
@@ -45,41 +45,41 @@ EOF
45 test_expect_success "'ipfs ls <three dir hashes>' output looks good" '
46 cat <<-\EOF >expected_ls &&
47 QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
48 -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss 246 d1/
49 -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy 1143 d2/
50 -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 13 f1
51 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 13 f2
48 +QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
49 +QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
50 +QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1
51 +QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2
52
53 QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
54 -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1035 1024
55 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 14 a
54 +QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024
55 +QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a
56
57 QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
58 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 139 128
59 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 14 a
58 +QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128
59 +QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a
60 EOF
61 test_cmp expected_ls actual_ls
62 '
63
64 - test_expect_success "'ipfs ls --resolve-size <three dir hashes>' succeeds" '
64 + test_expect_success "'ipfs ls --size=false <three dir hashes>' succeeds" '
65 ipfs ls --resolve-size QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls
66 '
67
68 test_expect_success "'ipfs ls <three dir hashes>' output looks good" '
69 cat <<-\EOF >expected_ls &&
70 QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
71 -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss 246 d1/
72 -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy 1143 d2/
73 -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1
74 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2
71 +QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
72 +QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
73 +QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH f1
74 +QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M f2
75
76 QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
77 -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024
78 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a
77 +QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024
78 +QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL a
79
80 QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
81 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128
82 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a
81 +QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128
82 +QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN a
83 EOF
84 test_cmp expected_ls actual_ls
85 '
@@ -92,20 +92,20 @@ EOF
92 cat <<-\EOF >expected_ls_headers &&
93 QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
94 Hash Size Name
95 -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss 246 d1/
96 -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy 1143 d2/
97 -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 13 f1
98 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 13 f2
95 +QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
96 +QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
97 +QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1
98 +QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2
99
100 QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
101 Hash Size Name
102 -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1035 1024
103 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 14 a
102 +QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024
103 +QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a
104
105 QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
106 Hash Size Name
107 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 139 128
108 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 14 a
107 +QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128
108 +QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a
109 EOF
110 test_cmp expected_ls_headers actual_ls_headers
111 '
@@ -147,41 +147,41 @@ EOF
147 test_expect_success "'ipfs ls --stream <three dir hashes>' output looks good" '
148 cat <<-\EOF >expected_ls_stream &&
149 QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
150 -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss 246 d1/
151 -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy 1143 d2/
152 -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 13 f1
153 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 13 f2
150 +QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
151 +QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
152 +QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1
153 +QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2
154
155 QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
156 -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1035 1024
157 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 14 a
156 +QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024
157 +QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a
158
159 QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
160 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 139 128
161 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 14 a
160 +QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128
161 +QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a
162 EOF
163 test_cmp expected_ls_stream actual_ls_stream
164 '
165
166 - test_expect_success "'ipfs ls --resolve-size --stream <three dir hashes>' succeeds" '
166 + test_expect_success "'ipfs ls --size=false --stream <three dir hashes>' succeeds" '
167 ipfs ls --resolve-size --stream QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_stream
168 '
169
170 - test_expect_success "'ipfs ls --stream <three dir hashes>' output looks good" '
170 + test_expect_success "'ipfs ls --size=false --stream <three dir hashes>' output looks good" '
171 cat <<-\EOF >expected_ls_stream &&
172 QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
173 -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss 246 d1/
174 -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy 1143 d2/
175 -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1
176 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2
173 +QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
174 +QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
175 +QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH f1
176 +QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M f2
177
178 QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
179 -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024
180 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a
179 +QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024
180 +QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL a
181
182 QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
183 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128
184 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a
183 +QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128
184 +QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN a
185 EOF
186 test_cmp expected_ls_stream actual_ls_stream
187 '
@@ -193,21 +193,21 @@ EOF
193 test_expect_success "'ipfs ls --stream --headers <three dir hashes>' output looks good" '
194 cat <<-\EOF >expected_ls_stream_headers &&
195 QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
196 -Hash Size Name
197 -QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss 246 d1/
198 -QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy 1143 d2/
199 -QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 13 f1
200 -QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 13 f2
196 +Hash Size Name
197 +QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
198 +QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
199 +QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 13 f1
200 +QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 13 f2
201
202 QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
203 -Hash Size Name
204 -QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1035 1024
205 -QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 14 a
203 +Hash Size Name
204 +QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1035 1024
205 +QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 14 a
206
207 QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
208 -Hash Size Name
209 -QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 139 128
210 -QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 14 a
208 +Hash Size Name
209 +QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 139 128
210 +QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 14 a
211 EOF
212 test_cmp expected_ls_stream_headers actual_ls_stream_headers
213 '
@@ -282,30 +282,30 @@ test_expect_success "remove a file in dir" '
282 ipfs block rm $FILE
283 '
284
285 -test_expect_success "'ipfs ls --resolve-type=false ' ok" '
286 - ipfs ls --resolve-type=false $DIR > /dev/null
285 +test_expect_success "'ipfs ls --resolve-type=false ' fails" '
286 + test_must_fail ipfs ls --resolve-type=false $DIR > /dev/null
287 '
288
289 test_expect_success "'ipfs ls' fails" '
290 test_must_fail ipfs ls $DIR
291 '
292
293 -test_expect_success "'ipfs ls --resolve-type=false --resolve-size=true' fails" '
294 - test_must_fail ipfs ls --resolve-type=false --resolve-size=true $DIR
293 +test_expect_success "'ipfs ls --resolve-type=true --size=false' fails" '
294 + test_must_fail ipfs ls --resolve-type=true --size=false $DIR
295 '
296
297 test_launch_ipfs_daemon --offline
298
299 -test_expect_success "'ipfs ls --resolve-type=false' ok" '
300 - ipfs ls --resolve-type=false $DIR > /dev/null
299 +test_expect_success "'ipfs ls --resolve-type=false --size=false' ok" '
300 + ipfs ls --resolve-type=false --size=false $DIR > /dev/null
301 '
302
303 test_expect_success "'ipfs ls' fails" '
304 test_must_fail ipfs ls $DIR
305 '
306
307 -test_expect_success "'ipfs ls --resolve-type=false --resolve-size=true' fails" '
308 - test_must_fail ipfs ls --resolve-type=false --resolve-size=true $DIR
307 +test_expect_success "'ipfs ls --resolve-type=false --size=true' fails" '
308 + test_must_fail ipfs ls --resolve-type=false --size=true $DIR
309 '
310
311 test_kill_ipfs_daemon