Skip to content

Commit 094dc98

Browse files
committed
Cleanup instances of manual resolver construction
License: MIT Signed-off-by: Łukasz Magiera <[email protected]>
1 parent 3538257 commit 094dc98

File tree

14 files changed

+185
-205
lines changed

14 files changed

+185
-205
lines changed

core/commands/cat.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ import (
66
"io"
77
"os"
88

9-
core "github.com/ipfs/go-ipfs/core"
109
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
11-
coreunix "github.com/ipfs/go-ipfs/core/coreunix"
10+
"github.com/ipfs/go-ipfs/core/coreapi/interface"
1211

1312
cmds "gx/ipfs/QmPXR4tNdLbp8HsZiPMjpsgqphX9Vhw2J6Jh5MKH2ovW3D/go-ipfs-cmds"
1413
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
@@ -35,6 +34,11 @@ var CatCmd = &cmds.Command{
3534
return err
3635
}
3736

37+
api, err := cmdenv.GetApi(env)
38+
if err != nil {
39+
return err
40+
}
41+
3842
if !node.OnlineMode() {
3943
if err := node.SetupOfflineRouting(); err != nil {
4044
return err
@@ -62,7 +66,7 @@ var CatCmd = &cmds.Command{
6266
return err
6367
}
6468

65-
readers, length, err := cat(req.Context, node, req.Arguments, int64(offset), int64(max))
69+
readers, length, err := cat(req.Context, api, req.Arguments, int64(offset), int64(max))
6670
if err != nil {
6771
return err
6872
}
@@ -115,14 +119,19 @@ var CatCmd = &cmds.Command{
115119
},
116120
}
117121

118-
func cat(ctx context.Context, node *core.IpfsNode, paths []string, offset int64, max int64) ([]io.Reader, uint64, error) {
122+
func cat(ctx context.Context, api iface.CoreAPI, paths []string, offset int64, max int64) ([]io.Reader, uint64, error) {
119123
readers := make([]io.Reader, 0, len(paths))
120124
length := uint64(0)
121125
if max == 0 {
122126
return nil, 0, nil
123127
}
124-
for _, fpath := range paths {
125-
read, err := coreunix.Cat(ctx, node, fpath)
128+
for _, p := range paths {
129+
fpath, err := iface.ParsePath(p)
130+
if err != nil {
131+
return nil, 0, err
132+
}
133+
134+
read, err := api.Unixfs().Cat(ctx, fpath)
126135
if err != nil {
127136
return nil, 0, err
128137
}

core/commands/files.go

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,21 @@ import (
1313

1414
oldcmds "github.com/ipfs/go-ipfs/commands"
1515
lgc "github.com/ipfs/go-ipfs/commands/legacy"
16-
core "github.com/ipfs/go-ipfs/core"
17-
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
18-
e "github.com/ipfs/go-ipfs/core/commands/e"
19-
ft "gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs"
20-
uio "gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs/io"
21-
path "gx/ipfs/QmX7uSbkNz76yNwBhuwYwRbhihLnJqM73VTCjS3UMJud9A/go-path"
22-
resolver "gx/ipfs/QmX7uSbkNz76yNwBhuwYwRbhihLnJqM73VTCjS3UMJud9A/go-path/resolver"
23-
dag "gx/ipfs/QmXv5mwmQ74r4aiHcNeQ4GAmfB3aWJuqaE4WyDfDfvkgLM/go-merkledag"
24-
bservice "gx/ipfs/Qma2KhbQarYTkmSJAeaMGRAg8HAXAhEWK8ge4SReG7ZSD3/go-blockservice"
16+
"github.com/ipfs/go-ipfs/core"
17+
"github.com/ipfs/go-ipfs/core/commands/cmdenv"
18+
"github.com/ipfs/go-ipfs/core/commands/e"
19+
"github.com/ipfs/go-ipfs/core/coreapi/interface"
2520

26-
humanize "gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
27-
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
28-
cmds "gx/ipfs/QmPXR4tNdLbp8HsZiPMjpsgqphX9Vhw2J6Jh5MKH2ovW3D/go-ipfs-cmds"
21+
ft "gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs"
22+
"gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
23+
"gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
24+
"gx/ipfs/QmPXR4tNdLbp8HsZiPMjpsgqphX9Vhw2J6Jh5MKH2ovW3D/go-ipfs-cmds"
2925
mh "gx/ipfs/QmPnFwZ2JXKnXgMw8CdBPxn7FWh6LLdjUjxV1fKHuJnkr8/go-multihash"
3026
logging "gx/ipfs/QmRREK2CAZ5Re2Bd9zZFG6FeYDppUWt5cMgsoUEp3ktgSr/go-log"
31-
mfs "gx/ipfs/QmRkrpnhZqDxTxwGCsDbuZMr7uCFZHH6SGfrcjgEQwxF3t/go-mfs"
32-
cmdkit "gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
27+
"gx/ipfs/QmRkrpnhZqDxTxwGCsDbuZMr7uCFZHH6SGfrcjgEQwxF3t/go-mfs"
28+
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
29+
dag "gx/ipfs/QmXv5mwmQ74r4aiHcNeQ4GAmfB3aWJuqaE4WyDfDfvkgLM/go-merkledag"
30+
bservice "gx/ipfs/Qma2KhbQarYTkmSJAeaMGRAg8HAXAhEWK8ge4SReG7ZSD3/go-blockservice"
3331
offline "gx/ipfs/QmcRC35JF2pJQneAxa5LdQBQRumWggccWErogSrCkS1h8T/go-ipfs-exchange-offline"
3432
ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
3533
)
@@ -120,6 +118,11 @@ var filesStatCmd = &cmds.Command{
120118
return err
121119
}
122120

121+
api, err := cmdenv.GetApi(env)
122+
if err != nil {
123+
return err
124+
}
125+
123126
path, err := checkPath(req.Arguments[0])
124127
if err != nil {
125128
return err
@@ -138,7 +141,7 @@ var filesStatCmd = &cmds.Command{
138141
dagserv = node.DAG
139142
}
140143

141-
nd, err := getNodeFromPath(req.Context, node, dagserv, path)
144+
nd, err := getNodeFromPath(req.Context, node, api, path)
142145
if err != nil {
143146
return err
144147
}
@@ -305,6 +308,12 @@ var filesCpCmd = &oldcmds.Command{
305308
return
306309
}
307310

311+
api, err := req.InvocContext().GetApi()
312+
if err != nil {
313+
res.SetError(err, cmdkit.ErrNormal)
314+
return
315+
}
316+
308317
flush, _, _ := req.Option("flush").Bool()
309318

310319
src, err := checkPath(req.Arguments()[0])
@@ -324,7 +333,7 @@ var filesCpCmd = &oldcmds.Command{
324333
dst += gopath.Base(src)
325334
}
326335

327-
nd, err := getNodeFromPath(req.Context(), node, node.DAG, src)
336+
nd, err := getNodeFromPath(req.Context(), node, api, src)
328337
if err != nil {
329338
res.SetError(fmt.Errorf("cp: cannot get node from path %s: %s", src, err), cmdkit.ErrNormal)
330339
return
@@ -348,20 +357,15 @@ var filesCpCmd = &oldcmds.Command{
348357
},
349358
}
350359

351-
func getNodeFromPath(ctx context.Context, node *core.IpfsNode, dagservice ipld.DAGService, p string) (ipld.Node, error) {
360+
func getNodeFromPath(ctx context.Context, node *core.IpfsNode, api iface.CoreAPI, p string) (ipld.Node, error) {
352361
switch {
353362
case strings.HasPrefix(p, "/ipfs/"):
354-
np, err := path.ParsePath(p)
363+
np, err := iface.ParsePath(p)
355364
if err != nil {
356365
return nil, err
357366
}
358367

359-
resolver := &resolver.Resolver{
360-
DAG: dagservice,
361-
ResolveOnce: uio.ResolveUnixfsOnce,
362-
}
363-
364-
return core.Resolve(ctx, node.Namesys, resolver, np)
368+
return api.ResolveNode(ctx, np)
365369
default:
366370
fsn, err := mfs.Lookup(node.FilesRoot, p)
367371
if err != nil {

core/commands/ls.go

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,17 @@ import (
77
"text/tabwriter"
88

99
cmds "github.com/ipfs/go-ipfs/commands"
10-
core "github.com/ipfs/go-ipfs/core"
11-
e "github.com/ipfs/go-ipfs/core/commands/e"
12-
unixfs "gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs"
10+
"github.com/ipfs/go-ipfs/core/commands/e"
11+
"github.com/ipfs/go-ipfs/core/coreapi/interface"
12+
13+
"gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs"
1314
uio "gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs/io"
1415
unixfspb "gx/ipfs/QmPL8bYtbACcSFFiSr4s2du7Na382NxRADR8hC7D9FkEA2/go-unixfs/pb"
15-
path "gx/ipfs/QmX7uSbkNz76yNwBhuwYwRbhihLnJqM73VTCjS3UMJud9A/go-path"
16-
resolver "gx/ipfs/QmX7uSbkNz76yNwBhuwYwRbhihLnJqM73VTCjS3UMJud9A/go-path/resolver"
17-
merkledag "gx/ipfs/QmXv5mwmQ74r4aiHcNeQ4GAmfB3aWJuqaE4WyDfDfvkgLM/go-merkledag"
18-
blockservice "gx/ipfs/Qma2KhbQarYTkmSJAeaMGRAg8HAXAhEWK8ge4SReG7ZSD3/go-blockservice"
19-
20-
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
16+
"gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
2117
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
22-
offline "gx/ipfs/QmcRC35JF2pJQneAxa5LdQBQRumWggccWErogSrCkS1h8T/go-ipfs-exchange-offline"
18+
"gx/ipfs/QmXv5mwmQ74r4aiHcNeQ4GAmfB3aWJuqaE4WyDfDfvkgLM/go-merkledag"
19+
"gx/ipfs/Qma2KhbQarYTkmSJAeaMGRAg8HAXAhEWK8ge4SReG7ZSD3/go-blockservice"
20+
"gx/ipfs/QmcRC35JF2pJQneAxa5LdQBQRumWggccWErogSrCkS1h8T/go-ipfs-exchange-offline"
2321
ipld "gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
2422
)
2523

@@ -65,6 +63,12 @@ The JSON output contains type information.
6563
return
6664
}
6765

66+
api, err := req.InvocContext().GetApi()
67+
if err != nil {
68+
res.SetError(err, cmdkit.ErrNormal)
69+
return
70+
}
71+
6872
// get options early -> exit early in case of error
6973
if _, _, err := req.Option("headers").Bool(); err != nil {
7074
res.SetError(err, cmdkit.ErrNormal)
@@ -88,18 +92,13 @@ The JSON output contains type information.
8892

8993
var dagnodes []ipld.Node
9094
for _, fpath := range paths {
91-
p, err := path.ParsePath(fpath)
95+
p, err := iface.ParsePath(fpath)
9296
if err != nil {
9397
res.SetError(err, cmdkit.ErrNormal)
9498
return
9599
}
96100

97-
r := &resolver.Resolver{
98-
DAG: nd.DAG,
99-
ResolveOnce: uio.ResolveUnixfsOnce,
100-
}
101-
102-
dagnode, err := core.Resolve(req.Context(), nd.Namesys, r, p)
101+
dagnode, err := api.ResolveNode(req.Context(), p)
103102
if err != nil {
104103
res.SetError(err, cmdkit.ErrNormal)
105104
return

0 commit comments

Comments
 (0)