1
0
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:
Brian Tiger Chow
2014-11-06 04:42:21 -08:00
committed by Juan Batiz-Benet
parent 4c029a8617
commit 92d20e429d
5 changed files with 48 additions and 39 deletions

View File

@ -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)

View File

@ -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

View 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
}

View File

@ -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)

View File

@ -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
}