mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-30 18:13:54 +08:00
add slice utils
ToStrings and ToReaders
This commit is contained in:

committed by
Juan Batiz-Benet

parent
4c029a8617
commit
92d20e429d
@ -7,6 +7,7 @@ import (
|
||||
|
||||
cmds "github.com/jbenet/go-ipfs/commands"
|
||||
core "github.com/jbenet/go-ipfs/core"
|
||||
internal "github.com/jbenet/go-ipfs/core/commands2/internal"
|
||||
importer "github.com/jbenet/go-ipfs/importer"
|
||||
dag "github.com/jbenet/go-ipfs/merkledag"
|
||||
)
|
||||
@ -34,14 +35,10 @@ var addCmd = &cmds.Command{
|
||||
// if r, _ := opt.(bool); found && r {
|
||||
// }
|
||||
|
||||
readers := make([]io.Reader, 0)
|
||||
for _, arg := range req.Arguments() {
|
||||
reader, ok := arg.(io.Reader)
|
||||
if !ok {
|
||||
res.SetError(errors.New("cast error"), cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
readers = append(readers, reader)
|
||||
readers, err := internal.ToReaders(req.Arguments())
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
|
||||
dagnodes, err := add(n, readers)
|
||||
|
@ -1,11 +1,11 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
|
||||
cmds "github.com/jbenet/go-ipfs/commands"
|
||||
core "github.com/jbenet/go-ipfs/core"
|
||||
"github.com/jbenet/go-ipfs/core/commands2/internal"
|
||||
uio "github.com/jbenet/go-ipfs/unixfs/io"
|
||||
)
|
||||
|
||||
@ -20,19 +20,15 @@ var catCmd = &cmds.Command{
|
||||
`,
|
||||
Run: func(res cmds.Response, req cmds.Request) {
|
||||
node := req.Context().Node
|
||||
paths := make([]string, 0, len(req.Arguments()))
|
||||
readers := make([]io.Reader, 0, len(req.Arguments()))
|
||||
|
||||
for _, arg := range req.Arguments() {
|
||||
path, ok := arg.(string)
|
||||
if !ok {
|
||||
res.SetError(errors.New("cast error"), cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
paths = append(paths, path)
|
||||
paths, err := internal.ToStrings(req.Arguments())
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
|
||||
readers, err := cat(node, paths)
|
||||
readers, err = cat(node, paths)
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
|
32
core/commands2/internal/slice_util.go
Normal file
32
core/commands2/internal/slice_util.go
Normal file
@ -0,0 +1,32 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
)
|
||||
|
||||
var CastErr = errors.New("cast error")
|
||||
|
||||
func ToReaders(slice []interface{}) ([]io.Reader, error) {
|
||||
readers := make([]io.Reader, 0)
|
||||
for _, arg := range slice {
|
||||
reader, ok := arg.(io.Reader)
|
||||
if !ok {
|
||||
return nil, CastErr
|
||||
}
|
||||
readers = append(readers, reader)
|
||||
}
|
||||
return readers, nil
|
||||
}
|
||||
|
||||
func ToStrings(slice []interface{}) ([]string, error) {
|
||||
strs := make([]string, 0)
|
||||
for _, maybe := range slice {
|
||||
str, ok := maybe.(string)
|
||||
if !ok {
|
||||
return nil, CastErr
|
||||
}
|
||||
strs = append(strs, str)
|
||||
}
|
||||
return strs, nil
|
||||
}
|
@ -1,10 +1,10 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
cmds "github.com/jbenet/go-ipfs/commands"
|
||||
"github.com/jbenet/go-ipfs/core/commands2/internal"
|
||||
merkledag "github.com/jbenet/go-ipfs/merkledag"
|
||||
)
|
||||
|
||||
@ -30,14 +30,10 @@ var lsCmd = &cmds.Command{
|
||||
Run: func(res cmds.Response, req cmds.Request) {
|
||||
node := req.Context().Node
|
||||
|
||||
paths := make([]string, 0)
|
||||
for _, arg := range req.Arguments() {
|
||||
path, ok := arg.(string)
|
||||
if !ok {
|
||||
res.SetError(errors.New("cast error"), cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
paths = append(paths, path)
|
||||
paths, err := internal.ToStrings(req.Arguments())
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
|
||||
dagnodes := make([]*merkledag.Node, 0)
|
||||
|
@ -122,15 +122,3 @@ func pin(n *core.IpfsNode, paths []string, recursive bool) ([]*merkledag.Node, e
|
||||
|
||||
return dagnodes, nil
|
||||
}
|
||||
|
||||
func toStrings(slice []interface{}) ([]string, error) {
|
||||
strs := make([]string, 0)
|
||||
for _, maybe := range slice {
|
||||
str, ok := maybe.(string)
|
||||
if !ok {
|
||||
return nil, errors.New("cast error")
|
||||
}
|
||||
strs = append(strs, str)
|
||||
}
|
||||
return strs, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user