@@ -10,18 +10,17 @@ import (
10
10
cmds "github.com/ipfs/go-ipfs/commands"
11
11
core "github.com/ipfs/go-ipfs/core"
12
12
e "github.com/ipfs/go-ipfs/core/commands/e"
13
+ iface "github.com/ipfs/go-ipfs/core/coreapi/interface"
14
+ options "github.com/ipfs/go-ipfs/core/coreapi/interface/options"
13
15
corerepo "github.com/ipfs/go-ipfs/core/corerepo"
14
16
pin "github.com/ipfs/go-ipfs/pin"
15
- uio "gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs/io"
16
17
17
18
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
18
19
offline "gx/ipfs/QmR5miWuikPxWyUrzMYJVmFUcD44pGdtc98h9Qsbp4YcJw/go-ipfs-exchange-offline"
19
20
"gx/ipfs/QmSP88ryZkHSRn1fnngAaV2Vcn63WUJzAavnRM9CVdU1Ky/go-ipfs-cmdkit"
20
21
"gx/ipfs/QmVkMRSkXrpjqrroEXWuYBvDBnXCdMMY6gsKicBGVGUqKT/go-verifcid"
21
22
dag "gx/ipfs/QmcBoNcAP6qDjgRBew7yjvCqHq7p5jMstE44jPUBWBxzsV/go-merkledag"
22
23
bserv "gx/ipfs/QmcRecCZWM2NZfCQrCe97Ch3Givv8KKEP82tGUDntzdLFe/go-blockservice"
23
- path "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path"
24
- resolver "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path/resolver"
25
24
)
26
25
27
26
var PinCmd = & cmds.Command {
@@ -68,6 +67,12 @@ var addPinCmd = &cmds.Command{
68
67
return
69
68
}
70
69
70
+ api , err := req .InvocContext ().GetApi ()
71
+ if err != nil {
72
+ res .SetError (err , cmdkit .ErrNormal )
73
+ return
74
+ }
75
+
71
76
defer n .Blockstore .PinLock ().Unlock ()
72
77
73
78
// set recursive flag
@@ -79,7 +84,7 @@ var addPinCmd = &cmds.Command{
79
84
showProgress , _ , _ := req .Option ("progress" ).Bool ()
80
85
81
86
if ! showProgress {
82
- added , err := corerepo .Pin (n , req .Context (), req .Arguments (), recursive )
87
+ added , err := corerepo .Pin (n , api , req .Context (), req .Arguments (), recursive )
83
88
if err != nil {
84
89
res .SetError (err , cmdkit .ErrNormal )
85
90
return
@@ -99,7 +104,7 @@ var addPinCmd = &cmds.Command{
99
104
}
100
105
ch := make (chan pinResult , 1 )
101
106
go func () {
102
- added , err := corerepo .Pin (n , ctx , req .Arguments (), recursive )
107
+ added , err := corerepo .Pin (n , api , ctx , req .Arguments (), recursive )
103
108
ch <- pinResult {pins : added , err : err }
104
109
}()
105
110
@@ -193,14 +198,20 @@ collected if needed. (By default, recursively. Use -r=false for direct pins.)
193
198
return
194
199
}
195
200
201
+ api , err := req .InvocContext ().GetApi ()
202
+ if err != nil {
203
+ res .SetError (err , cmdkit .ErrNormal )
204
+ return
205
+ }
206
+
196
207
// set recursive flag
197
208
recursive , _ , err := req .Option ("recursive" ).Bool ()
198
209
if err != nil {
199
210
res .SetError (err , cmdkit .ErrNormal )
200
211
return
201
212
}
202
213
203
- removed , err := corerepo .Unpin (n , req .Context (), req .Arguments (), recursive )
214
+ removed , err := corerepo .Unpin (n , api , req .Context (), req .Arguments (), recursive )
204
215
if err != nil {
205
216
res .SetError (err , cmdkit .ErrNormal )
206
217
return
@@ -287,6 +298,12 @@ Example:
287
298
return
288
299
}
289
300
301
+ api , err := req .InvocContext ().GetApi ()
302
+ if err != nil {
303
+ res .SetError (err , cmdkit .ErrNormal )
304
+ return
305
+ }
306
+
290
307
typeStr , _ , err := req .Option ("type" ).String ()
291
308
if err != nil {
292
309
res .SetError (err , cmdkit .ErrNormal )
@@ -304,7 +321,7 @@ Example:
304
321
var keys map [string ]RefKeyObject
305
322
306
323
if len (req .Arguments ()) > 0 {
307
- keys , err = pinLsKeys (req .Context (), req .Arguments (), typeStr , n )
324
+ keys , err = pinLsKeys (req .Context (), req .Arguments (), typeStr , n , api )
308
325
} else {
309
326
keys , err = pinLsAll (req .Context (), typeStr , n )
310
327
}
@@ -364,7 +381,7 @@ new pin and removing the old one.
364
381
},
365
382
Type : PinOutput {},
366
383
Run : func (req cmds.Request , res cmds.Response ) {
367
- n , err := req .InvocContext ().GetNode ()
384
+ api , err := req .InvocContext ().GetApi ()
368
385
if err != nil {
369
386
res .SetError (err , cmdkit .ErrNormal )
370
387
return
@@ -376,42 +393,19 @@ new pin and removing the old one.
376
393
return
377
394
}
378
395
379
- from , err := path .ParsePath (req .Arguments ()[0 ])
396
+ from , err := iface .ParsePath (req .Arguments ()[0 ])
380
397
if err != nil {
381
398
res .SetError (err , cmdkit .ErrNormal )
382
399
return
383
400
}
384
401
385
- to , err := path .ParsePath (req .Arguments ()[1 ])
402
+ to , err := iface .ParsePath (req .Arguments ()[1 ])
386
403
if err != nil {
387
404
res .SetError (err , cmdkit .ErrNormal )
388
405
return
389
406
}
390
407
391
- r := & resolver.Resolver {
392
- DAG : n .DAG ,
393
- ResolveOnce : uio .ResolveUnixfsOnce ,
394
- }
395
-
396
- fromc , err := core .ResolveToCid (req .Context (), n .Namesys , r , from )
397
- if err != nil {
398
- res .SetError (err , cmdkit .ErrNormal )
399
- return
400
- }
401
-
402
- toc , err := core .ResolveToCid (req .Context (), n .Namesys , r , to )
403
- if err != nil {
404
- res .SetError (err , cmdkit .ErrNormal )
405
- return
406
- }
407
-
408
- err = n .Pinning .Update (req .Context (), fromc , toc , unpin )
409
- if err != nil {
410
- res .SetError (err , cmdkit .ErrNormal )
411
- return
412
- }
413
-
414
- err = n .Pinning .Flush ()
408
+ err = api .Pin ().Update (req .Context (), from , to , options .Pin .Unpin (unpin ))
415
409
if err != nil {
416
410
res .SetError (err , cmdkit .ErrNormal )
417
411
return
@@ -501,7 +495,7 @@ type RefKeyList struct {
501
495
Keys map [string ]RefKeyObject
502
496
}
503
497
504
- func pinLsKeys (ctx context.Context , args []string , typeStr string , n * core.IpfsNode ) (map [string ]RefKeyObject , error ) {
498
+ func pinLsKeys (ctx context.Context , args []string , typeStr string , n * core.IpfsNode , api iface. CoreAPI ) (map [string ]RefKeyObject , error ) {
505
499
506
500
mode , ok := pin .StringToMode (typeStr )
507
501
if ! ok {
@@ -510,23 +504,18 @@ func pinLsKeys(ctx context.Context, args []string, typeStr string, n *core.IpfsN
510
504
511
505
keys := make (map [string ]RefKeyObject )
512
506
513
- r := & resolver.Resolver {
514
- DAG : n .DAG ,
515
- ResolveOnce : uio .ResolveUnixfsOnce ,
516
- }
517
-
518
507
for _ , p := range args {
519
- pth , err := path .ParsePath (p )
508
+ pth , err := iface .ParsePath (p )
520
509
if err != nil {
521
510
return nil , err
522
511
}
523
512
524
- c , err := core . ResolveToCid (ctx , n . Namesys , r , pth )
513
+ c , err := api . ResolvePath (ctx , pth )
525
514
if err != nil {
526
515
return nil , err
527
516
}
528
517
529
- pinType , pinned , err := n .Pinning .IsPinnedWithType (c , mode )
518
+ pinType , pinned , err := n .Pinning .IsPinnedWithType (c . Cid () , mode )
530
519
if err != nil {
531
520
return nil , err
532
521
}
0 commit comments