Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
86f0aac8
Commit
86f0aac8
authored
10 years ago
by
Brian Tiger Chow
Committed by
Juan Batiz-Benet
10 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refac(commands2/pin) loop
parent
353cb399
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
13 deletions
+32
-13
core/commands2/pin.go
core/commands2/pin.go
+32
-13
No files found.
core/commands2/pin.go
View file @
86f0aac8
...
...
@@ -5,6 +5,8 @@ import (
"fmt"
cmds
"github.com/jbenet/go-ipfs/commands"
"github.com/jbenet/go-ipfs/core"
"github.com/jbenet/go-ipfs/merkledag"
)
var
pinCmd
=
&
cmds
.
Command
{
...
...
@@ -35,27 +37,17 @@ var pinCmd = &cmds.Command{
}
}*/
paths
:=
make
([]
string
,
0
)
for
_
,
arg
:=
range
req
.
Arguments
()
{
path
,
ok
:=
arg
.
(
string
)
if
!
ok
{
res
.
SetError
(
errors
.
New
(
"cast error"
),
cmds
.
ErrNormal
)
return
}
dagnode
,
err
:=
n
.
Resolver
.
ResolvePath
(
path
)
if
err
!=
nil
{
res
.
SetError
(
fmt
.
Errorf
(
"pin error: %v"
,
err
),
cmds
.
ErrNormal
)
return
paths
=
append
(
paths
,
path
)
}
err
=
n
.
Pinning
.
Pin
(
dagnode
,
recursive
)
if
err
!=
nil
{
res
.
SetError
(
fmt
.
Errorf
(
"pin: %v"
,
err
),
cmds
.
ErrNormal
)
return
}
}
err
:=
n
.
Pinning
.
Flush
()
_
,
err
:=
pin
(
n
,
paths
,
recursive
)
if
err
!=
nil
{
res
.
SetError
(
err
,
cmds
.
ErrNormal
)
}
...
...
@@ -107,3 +99,30 @@ var unpinCmd = &cmds.Command{
// TODO: create some output to show what got unpinned
},
}
func
pin
(
n
*
core
.
IpfsNode
,
paths
[]
string
,
recursive
bool
)
([]
*
merkledag
.
Node
,
error
)
{
dagnodes
:=
make
([]
*
merkledag
.
Node
,
0
)
for
_
,
path
:=
range
paths
{
dagnode
,
err
:=
n
.
Resolver
.
ResolvePath
(
path
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"pin error: %v"
,
err
)
}
dagnodes
=
append
(
dagnodes
,
dagnode
)
}
for
_
,
dagnode
:=
range
dagnodes
{
err
:=
n
.
Pinning
.
Pin
(
dagnode
,
recursive
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"pin: %v"
,
err
)
}
}
err
:=
n
.
Pinning
.
Flush
()
if
err
!=
nil
{
return
nil
,
err
}
return
dagnodes
,
nil
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment