From 4c029a86178a4aa058e58c4f99ad376f0ff4e962 Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow Date: Thu, 6 Nov 2014 04:19:00 -0800 Subject: [PATCH] extract toStrings method --- core/commands2/pin.go | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/core/commands2/pin.go b/core/commands2/pin.go index b93b33060..f16f52f05 100644 --- a/core/commands2/pin.go +++ b/core/commands2/pin.go @@ -37,17 +37,13 @@ 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 - } - paths = append(paths, path) + paths, err := toStrings(req.Arguments()) + if err != nil { + res.SetError(err, cmds.ErrNormal) + return } - _, err := pin(n, paths, recursive) + _, err = pin(n, paths, recursive) if err != nil { res.SetError(err, cmds.ErrNormal) } @@ -126,3 +122,15 @@ 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 +}