mirror of
https://github.com/ipfs/kubo.git
synced 2025-07-01 19:24:14 +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"
|
cmds "github.com/jbenet/go-ipfs/commands"
|
||||||
core "github.com/jbenet/go-ipfs/core"
|
core "github.com/jbenet/go-ipfs/core"
|
||||||
|
internal "github.com/jbenet/go-ipfs/core/commands2/internal"
|
||||||
importer "github.com/jbenet/go-ipfs/importer"
|
importer "github.com/jbenet/go-ipfs/importer"
|
||||||
dag "github.com/jbenet/go-ipfs/merkledag"
|
dag "github.com/jbenet/go-ipfs/merkledag"
|
||||||
)
|
)
|
||||||
@ -34,14 +35,10 @@ var addCmd = &cmds.Command{
|
|||||||
// if r, _ := opt.(bool); found && r {
|
// if r, _ := opt.(bool); found && r {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
readers := make([]io.Reader, 0)
|
readers, err := internal.ToReaders(req.Arguments())
|
||||||
for _, arg := range req.Arguments() {
|
if err != nil {
|
||||||
reader, ok := arg.(io.Reader)
|
res.SetError(err, cmds.ErrNormal)
|
||||||
if !ok {
|
return
|
||||||
res.SetError(errors.New("cast error"), cmds.ErrNormal)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
readers = append(readers, reader)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dagnodes, err := add(n, readers)
|
dagnodes, err := add(n, readers)
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package commands
|
package commands
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
cmds "github.com/jbenet/go-ipfs/commands"
|
cmds "github.com/jbenet/go-ipfs/commands"
|
||||||
core "github.com/jbenet/go-ipfs/core"
|
core "github.com/jbenet/go-ipfs/core"
|
||||||
|
"github.com/jbenet/go-ipfs/core/commands2/internal"
|
||||||
uio "github.com/jbenet/go-ipfs/unixfs/io"
|
uio "github.com/jbenet/go-ipfs/unixfs/io"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -20,19 +20,15 @@ var catCmd = &cmds.Command{
|
|||||||
`,
|
`,
|
||||||
Run: func(res cmds.Response, req cmds.Request) {
|
Run: func(res cmds.Response, req cmds.Request) {
|
||||||
node := req.Context().Node
|
node := req.Context().Node
|
||||||
paths := make([]string, 0, len(req.Arguments()))
|
|
||||||
readers := make([]io.Reader, 0, len(req.Arguments()))
|
readers := make([]io.Reader, 0, len(req.Arguments()))
|
||||||
|
|
||||||
for _, arg := range req.Arguments() {
|
paths, err := internal.ToStrings(req.Arguments())
|
||||||
path, ok := arg.(string)
|
if err != nil {
|
||||||
if !ok {
|
res.SetError(err, cmds.ErrNormal)
|
||||||
res.SetError(errors.New("cast error"), cmds.ErrNormal)
|
return
|
||||||
return
|
|
||||||
}
|
|
||||||
paths = append(paths, path)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
readers, err := cat(node, paths)
|
readers, err = cat(node, paths)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
res.SetError(err, cmds.ErrNormal)
|
res.SetError(err, cmds.ErrNormal)
|
||||||
return
|
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
|
package commands
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
cmds "github.com/jbenet/go-ipfs/commands"
|
cmds "github.com/jbenet/go-ipfs/commands"
|
||||||
|
"github.com/jbenet/go-ipfs/core/commands2/internal"
|
||||||
merkledag "github.com/jbenet/go-ipfs/merkledag"
|
merkledag "github.com/jbenet/go-ipfs/merkledag"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -30,14 +30,10 @@ var lsCmd = &cmds.Command{
|
|||||||
Run: func(res cmds.Response, req cmds.Request) {
|
Run: func(res cmds.Response, req cmds.Request) {
|
||||||
node := req.Context().Node
|
node := req.Context().Node
|
||||||
|
|
||||||
paths := make([]string, 0)
|
paths, err := internal.ToStrings(req.Arguments())
|
||||||
for _, arg := range req.Arguments() {
|
if err != nil {
|
||||||
path, ok := arg.(string)
|
res.SetError(err, cmds.ErrNormal)
|
||||||
if !ok {
|
return
|
||||||
res.SetError(errors.New("cast error"), cmds.ErrNormal)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
paths = append(paths, path)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dagnodes := make([]*merkledag.Node, 0)
|
dagnodes := make([]*merkledag.Node, 0)
|
||||||
|
@ -122,15 +122,3 @@ func pin(n *core.IpfsNode, paths []string, recursive bool) ([]*merkledag.Node, e
|
|||||||
|
|
||||||
return dagnodes, nil
|
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