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