Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
39c2e012
提交
39c2e012
authored
1月 11, 2019
作者:
Łukasz Magiera
提交者:
Steven Allen
1月 17, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ls: skip size for directories
License: MIT Signed-off-by:
Łukasz Magiera
<
magik6k@gmail.com
>
上级
e63c06c8
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
55 行增加
和
41 行删除
+55
-41
ls.go
core/commands/ls.go
+17
-4
unixfs.go
core/coreapi/interface/tests/unixfs.go
+2
-2
t0045-ls.sh
test/sharness/t0045-ls.sh
+31
-31
t0051-object.sh
test/sharness/t0051-object.sh
+1
-1
t0260-sharding.sh
test/sharness/t0260-sharding.sh
+4
-3
没有找到文件。
core/commands/ls.go
浏览文件 @
39c2e012
...
...
@@ -235,6 +235,7 @@ func makeLsLink(req *cmds.Request, dserv ipld.DAGService, resolveType bool, reso
case
cid
.
Raw
:
// No need to check with raw leaves
t
=
unixfs
.
TFile
size
=
link
.
Size
case
cid
.
DagProtobuf
:
linkNode
,
err
:=
link
.
GetNode
(
req
.
Context
,
dserv
)
if
err
==
ipld
.
ErrNotFound
&&
!
resolveType
&&
!
resolveSize
{
...
...
@@ -268,6 +269,7 @@ func makeLsLink(req *cmds.Request, dserv ipld.DAGService, resolveType bool, reso
func
tabularOutput
(
req
*
cmds
.
Request
,
w
io
.
Writer
,
out
*
LsOutput
,
lastObjectHash
string
,
ignoreBreaks
bool
)
string
{
headers
,
_
:=
req
.
Options
[
lsHeadersOptionNameTime
]
.
(
bool
)
stream
,
_
:=
req
.
Options
[
lsStreamOptionName
]
.
(
bool
)
size
,
_
:=
req
.
Options
[
lsSizeOptionName
]
.
(
bool
)
// in streaming mode we can't automatically align the tabs
// so we take a best guess
var
minTabWidth
int
...
...
@@ -291,17 +293,28 @@ func tabularOutput(req *cmds.Request, w io.Writer, out *LsOutput, lastObjectHash
fmt
.
Fprintf
(
tw
,
"%s:
\n
"
,
object
.
Hash
)
}
if
headers
{
fmt
.
Fprintln
(
tw
,
"Hash
\t
Size
\t
Name"
)
s
:=
"Hash
\t
Name"
if
size
{
s
=
"Hash
\t
Size
\t
Name"
}
fmt
.
Fprintln
(
tw
,
s
)
}
lastObjectHash
=
object
.
Hash
}
for
_
,
link
:=
range
object
.
Links
{
if
link
.
Type
==
unixfs
.
TDirectory
{
link
.
Name
+=
"/"
s
:=
"%[1]s
\t
%[3]s
\n
"
switch
{
case
link
.
Type
==
unixfs
.
TDirectory
&&
size
:
s
=
"%[1]s
\t\t
%[3]s/
\n
"
case
link
.
Type
==
unixfs
.
TDirectory
&&
!
size
:
s
=
"%[1]s
\t
%[3]s/
\n
"
case
size
:
s
=
"%s
\t
%v
\t
%s
\n
"
}
fmt
.
Fprintf
(
tw
,
"%s
\t
%v
\t
%s
\n
"
,
link
.
Hash
,
link
.
Size
,
link
.
Name
)
fmt
.
Fprintf
(
tw
,
s
,
link
.
Hash
,
link
.
Size
,
link
.
Name
)
}
}
tw
.
Flush
()
...
...
core/coreapi/interface/tests/unixfs.go
浏览文件 @
39c2e012
...
...
@@ -704,8 +704,8 @@ func (tp *provider) TestLs(t *testing.T) {
if
len
(
links
)
!=
1
{
t
.
Fatalf
(
"expected 1 link, got %d"
,
len
(
links
))
}
if
links
[
0
]
.
Size
!=
15
{
t
.
Fatalf
(
"expected size =
15
, got %d"
,
links
[
0
]
.
Size
)
if
links
[
0
]
.
Size
!=
23
{
t
.
Fatalf
(
"expected size =
23
, got %d"
,
links
[
0
]
.
Size
)
}
if
links
[
0
]
.
Name
!=
"name-of-file"
{
t
.
Fatalf
(
"expected name = name-of-file, got %s"
,
links
[
0
]
.
Name
)
...
...
test/sharness/t0045-ls.sh
浏览文件 @
39c2e012
...
...
@@ -62,7 +62,7 @@ EOF
'
test_expect_success
"'ipfs ls --size=false <three dir hashes>' succeeds"
'
ipfs ls --
resolve-siz
e QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls
ipfs ls --
size=fals
e QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls
'
test_expect_success
"'ipfs ls <three dir hashes>' output looks good"
'
...
...
@@ -147,24 +147,24 @@ EOF
test_expect_success
"'ipfs ls --stream <three dir hashes>' output looks good"
'
cat <<-\EOF >expected_ls_stream &&
QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5 f1
QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5 f2
QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss
d1/
QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy
d2/
QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH 5
f1
QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M 5
f2
QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024 1024
QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6 a
QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 1024
1024
QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL 6
a
QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128 128
QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6 a
QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 128
128
QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 6
a
EOF
test_cmp expected_ls_stream actual_ls_stream
'
test_expect_success
"'ipfs ls --size=false --stream <three dir hashes>' succeeds"
'
ipfs ls --
resolve-siz
e --stream QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_stream
ipfs ls --
size=fals
e --stream QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss >actual_ls_stream
'
test_expect_success
"'ipfs ls --size=false --stream <three dir hashes>' output looks good"
'
...
...
@@ -193,21 +193,21 @@ EOF
test_expect_success
"'ipfs ls --stream --headers <three dir hashes>' output looks good"
'
cat <<-\EOF >expected_ls_stream_headers &&
QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj:
Hash Size Name
QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss d1/
QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy d2/
QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH
13
f1
QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M
13
f2
Hash Size
Name
QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss
d1/
QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy
d2/
QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH
5
f1
QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M
5
f2
QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy:
Hash Size Name
QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 10
35
1024
QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL
14
a
Hash Size
Name
QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd 10
24
1024
QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL
6
a
QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss:
Hash Size Name
QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 1
39
128
QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN
14
a
Hash Size
Name
QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe 1
28
128
QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN
6
a
EOF
test_cmp expected_ls_stream_headers actual_ls_stream_headers
'
...
...
@@ -225,21 +225,21 @@ test_ls_cmd_raw_leaves() {
}
test_ls_object
()
{
test_expect_success
"ipfs add medium size file then 'ipfs ls' works as expected"
'
test_expect_success
"ipfs add medium size file then 'ipfs ls
--size=false
' works as expected"
'
random 500000 2 > somefile &&
HASH=$(ipfs add somefile -q) &&
echo "QmPrM8S5T7Q3M8DQvQMS7m41m3Aq4jBjzAzvky5fH3xfr4
262158
" > ls-expect &&
echo "QmdaAntAzQqqVMo4B8V69nkQd5d918YjHXUe2oF6hr72ri
237870
" >> ls-expect &&
ipfs ls $HASH > ls-actual &&
echo "QmPrM8S5T7Q3M8DQvQMS7m41m3Aq4jBjzAzvky5fH3xfr4 " > ls-expect &&
echo "QmdaAntAzQqqVMo4B8V69nkQd5d918YjHXUe2oF6hr72ri " >> ls-expect &&
ipfs ls
--size=false
$HASH > ls-actual &&
test_cmp ls-actual ls-expect
'
test_expect_success
"ipfs add medium size file then 'ipfs ls
--resolve-size
' works as expected"
'
test_expect_success
"ipfs add medium size file then 'ipfs ls' works as expected"
'
random 500000 2 > somefile &&
HASH=$(ipfs add somefile -q) &&
echo "QmPrM8S5T7Q3M8DQvQMS7m41m3Aq4jBjzAzvky5fH3xfr4 262144 " > ls-expect &&
echo "QmdaAntAzQqqVMo4B8V69nkQd5d918YjHXUe2oF6hr72ri 237856 " >> ls-expect &&
ipfs ls
--resolve-size
$HASH > ls-actual &&
ipfs ls $HASH > ls-actual &&
test_cmp ls-actual ls-expect
'
}
...
...
@@ -248,7 +248,7 @@ test_ls_object() {
test_ls_cmd
test_ls_cmd_streaming
test_ls_cmd_raw_leaves
test_ls_cmd_raw_leaves
--
resolve-
size
test_ls_cmd_raw_leaves
--size
test_ls_object
# should work online
...
...
@@ -256,7 +256,7 @@ test_launch_ipfs_daemon
test_ls_cmd
test_ls_cmd_streaming
test_ls_cmd_raw_leaves
test_ls_cmd_raw_leaves
--
resolve-
size
test_ls_cmd_raw_leaves
--size
test_kill_ipfs_daemon
test_ls_object
...
...
@@ -317,8 +317,8 @@ test_launch_ipfs_daemon
# it does it should eventually fail as the content is random and
# should not exist on the network, but we don't want to wait for a
# timeout so we will kill the request after a few seconds
test_expect_success
"'ipfs ls --resolve-type=false' ok and does not hang"
'
go-timeout 2 ipfs ls --resolve-type=false $DIR
test_expect_success
"'ipfs ls --resolve-type=false
--size=false
' ok and does not hang"
'
go-timeout 2 ipfs ls --resolve-type=false
--size=false
$DIR
'
test_kill_ipfs_daemon
...
...
test/sharness/t0051-object.sh
浏览文件 @
39c2e012
...
...
@@ -292,7 +292,7 @@ test_object_cmd() {
'
test_expect_success
"output looks good"
'
echo "QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
4
foo/" > patched_exp &&
echo "QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn foo/" > patched_exp &&
test_cmp patched_exp patched_output
'
...
...
test/sharness/t0260-sharding.sh
浏览文件 @
39c2e012
...
...
@@ -65,15 +65,16 @@ test_expect_success "ipfs cat error output the same" '
test_cmp sharded_err unsharded_err
'
test_expect_success
"'ipfs ls --resolve-type=false' admits missing block"
'
test_expect_success
"'ipfs ls --resolve-type=false
--size=false
' admits missing block"
'
ipfs ls "$SHARDED" | head -1 > first_file &&
ipfs ls --size=false "$SHARDED" | sort > sharded_out_nosize &&
read -r HASH _ NAME <first_file &&
ipfs pin rm "$SHARDED" "$UNSHARDED" && # To allow us to remove the block
ipfs block rm "$HASH" &&
test_expect_code 1 ipfs cat "$SHARDED/$NAME" &&
test_expect_code 1 ipfs ls "$SHARDED" &&
ipfs ls --resolve-type=false "$SHARDED" | sort > missing_out &&
test_cmp sharded_out missing_out
ipfs ls --resolve-type=false
--size=false
"$SHARDED" | sort > missing_out &&
test_cmp sharded_out
_nosize
missing_out
'
test_launch_ipfs_daemon
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论