From d1f1d2f5bf2adcc726856de0c681b24ba8fc6651 Mon Sep 17 00:00:00 2001 From: Matt Bell <mappum@gmail.com> Date: Sun, 16 Nov 2014 23:28:28 -0800 Subject: [PATCH] core/commands2: Fixed commands to use string arguments --- cmd/ipfs2/tour.go | 10 ++-------- core/commands2/block.go | 5 +---- core/commands2/bootstrap.go | 13 ++----------- core/commands2/cat.go | 8 +------- core/commands2/config.go | 13 ++----------- core/commands2/log.go | 6 +----- core/commands2/ls.go | 6 +----- core/commands2/object.go | 29 +++++++---------------------- core/commands2/pin.go | 15 ++------------- core/commands2/publish.go | 4 ++-- core/commands2/refs.go | 8 +------- core/commands2/resolve.go | 7 +------ 12 files changed, 23 insertions(+), 101 deletions(-) diff --git a/cmd/ipfs2/tour.go b/cmd/ipfs2/tour.go index 94cd9aaf6..72fc4c77f 100644 --- a/cmd/ipfs2/tour.go +++ b/cmd/ipfs2/tour.go @@ -9,7 +9,6 @@ import ( cmds "github.com/jbenet/go-ipfs/commands" config "github.com/jbenet/go-ipfs/config" - internal "github.com/jbenet/go-ipfs/core/commands2/internal" tour "github.com/jbenet/go-ipfs/tour" ) @@ -43,14 +42,9 @@ func tourRunFunc(req cmds.Request) (interface{}, error) { return nil, err } - strs, err := internal.CastToStrings(req.Arguments()) - if err != nil { - return nil, err - } - id := tour.TopicID(cfg.Tour.Last) - if len(strs) > 0 { - id = tour.TopicID(strs[0]) + if len(req.Arguments()) > 0 { + id = tour.TopicID(req.Arguments()[0]) } var w bytes.Buffer diff --git a/core/commands2/block.go b/core/commands2/block.go index a8cf2b923..3efee084a 100644 --- a/core/commands2/block.go +++ b/core/commands2/block.go @@ -52,10 +52,7 @@ It outputs to stdout, and <key> is a base58 encoded multihash. return nil, err } - key, ok := req.Arguments()[0].(string) - if !ok { - return nil, u.ErrCast() - } + key := req.Arguments()[0] if !u.IsValidHash(key) { return nil, cmds.Error{"Not a valid hash", cmds.ErrClient} diff --git a/core/commands2/bootstrap.go b/core/commands2/bootstrap.go index 825310c8e..4b68a67c6 100644 --- a/core/commands2/bootstrap.go +++ b/core/commands2/bootstrap.go @@ -184,16 +184,7 @@ func bootstrapWritePeers(w io.Writer, prefix string, peers []*config.BootstrapPe return nil } -func bootstrapInputToPeers(input []interface{}) ([]*config.BootstrapPeer, error) { - inputAddrs := make([]string, len(input)) - for i, v := range input { - addr, ok := v.(string) - if !ok { - return nil, u.ErrCast() - } - inputAddrs[i] = addr - } - +func bootstrapInputToPeers(input []string) ([]*config.BootstrapPeer, error) { split := func(addr string) (string, string) { idx := strings.LastIndex(addr, "/") if idx == -1 { @@ -203,7 +194,7 @@ func bootstrapInputToPeers(input []interface{}) ([]*config.BootstrapPeer, error) } peers := []*config.BootstrapPeer{} - for _, addr := range inputAddrs { + for _, addr := range input { addrS, peeridS := split(addr) // make sure addrS parses as a multiaddr. diff --git a/core/commands2/cat.go b/core/commands2/cat.go index 3bd760269..dd5187a10 100644 --- a/core/commands2/cat.go +++ b/core/commands2/cat.go @@ -5,7 +5,6 @@ import ( 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" ) @@ -29,12 +28,7 @@ it contains. readers := make([]io.Reader, 0, len(req.Arguments())) - paths, err := internal.CastToStrings(req.Arguments()) - if err != nil { - return nil, err - } - - readers, err = cat(node, paths) + readers, err = cat(node, req.Arguments()) if err != nil { return nil, err } diff --git a/core/commands2/config.go b/core/commands2/config.go index 8a4b1bdb6..2e58622d0 100644 --- a/core/commands2/config.go +++ b/core/commands2/config.go @@ -55,11 +55,7 @@ Set the value of the 'datastore.path' key: }, Run: func(req cmds.Request) (interface{}, error) { args := req.Arguments() - - key, ok := args[0].(string) - if !ok { - return nil, u.ErrCast() - } + key := args[0] filename, err := config.Filename(req.Context().ConfigRoot) if err != nil { @@ -68,12 +64,7 @@ Set the value of the 'datastore.path' key: var value string if len(args) == 2 { - var ok bool - value, ok = args[1].(string) - if !ok { - return nil, u.ErrCast() - } - + value = args[1] return setConfig(filename, key, value) } else { diff --git a/core/commands2/log.go b/core/commands2/log.go index 1c821dbdc..a5b494943 100644 --- a/core/commands2/log.go +++ b/core/commands2/log.go @@ -31,11 +31,7 @@ output of a running daemon. Run: func(req cmds.Request) (interface{}, error) { args := req.Arguments() - subsystem, ok1 := args[0].(string) - level, ok2 := args[1].(string) - if !ok1 || !ok2 { - return nil, u.ErrCast() - } + subsystem, level := args[0], args[1] if subsystem == logAllKeyword { subsystem = "*" diff --git a/core/commands2/ls.go b/core/commands2/ls.go index c849825de..7b3db8eb5 100644 --- a/core/commands2/ls.go +++ b/core/commands2/ls.go @@ -4,7 +4,6 @@ import ( "fmt" cmds "github.com/jbenet/go-ipfs/commands" - "github.com/jbenet/go-ipfs/core/commands2/internal" merkledag "github.com/jbenet/go-ipfs/merkledag" ) @@ -42,10 +41,7 @@ it contains, with the following format: return nil, err } - paths, err := internal.CastToStrings(req.Arguments()) - if err != nil { - return nil, err - } + paths := req.Arguments() dagnodes := make([]*merkledag.Node, 0) for _, path := range paths { diff --git a/core/commands2/object.go b/core/commands2/object.go index fe3925de4..b4f34e318 100644 --- a/core/commands2/object.go +++ b/core/commands2/object.go @@ -12,7 +12,6 @@ import ( cmds "github.com/jbenet/go-ipfs/commands" core "github.com/jbenet/go-ipfs/core" dag "github.com/jbenet/go-ipfs/merkledag" - u "github.com/jbenet/go-ipfs/util" ) // ErrObjectTooLarge is returned when too much data was read from stdin. current limit 512k @@ -74,11 +73,7 @@ output is the raw data of the object. return nil, err } - key, ok := req.Arguments()[0].(string) - if !ok { - return nil, u.ErrCast() - } - + key := req.Arguments()[0] return objectData(n, key) }, } @@ -102,11 +97,7 @@ multihash. return nil, err } - key, ok := req.Arguments()[0].(string) - if !ok { - return nil, u.ErrCast() - } - + key := req.Arguments()[0] return objectLinks(n, key) }, Marshalers: cmds.MarshalerMap{ @@ -148,10 +139,7 @@ This command outputs data in the following encodings: return nil, err } - key, ok := req.Arguments()[0].(string) - if !ok { - return nil, u.ErrCast() - } + key := req.Arguments()[0] object, err := objectGet(n, key) if err != nil { @@ -214,15 +202,12 @@ Data should be in the format specified by <encoding>. return nil, err } - input, ok := req.Arguments()[0].(io.Reader) - if !ok { - return nil, u.ErrCast() + input, err := req.Files().NextFile() + if err != nil && err != io.EOF { + return nil, err } - encoding, ok := req.Arguments()[1].(string) - if !ok { - return nil, u.ErrCast() - } + encoding := req.Arguments()[0] output, err := objectPut(n, input, encoding) if err != nil { diff --git a/core/commands2/pin.go b/core/commands2/pin.go index 3790f5167..33060de60 100644 --- a/core/commands2/pin.go +++ b/core/commands2/pin.go @@ -5,7 +5,6 @@ import ( cmds "github.com/jbenet/go-ipfs/commands" "github.com/jbenet/go-ipfs/core" - "github.com/jbenet/go-ipfs/core/commands2/internal" "github.com/jbenet/go-ipfs/merkledag" ) @@ -50,12 +49,7 @@ on disk. recursive = false } - paths, err := internal.CastToStrings(req.Arguments()) - if err != nil { - return nil, err - } - - _, err = pin(n, paths, recursive) + _, err = pin(n, req.Arguments(), recursive) if err != nil { return nil, err } @@ -95,12 +89,7 @@ collected if needed. recursive = false // default } - paths, err := internal.CastToStrings(req.Arguments()) - if err != nil { - return nil, err - } - - _, err = unpin(n, paths, recursive) + _, err = unpin(n, req.Arguments(), recursive) if err != nil { return nil, err } diff --git a/core/commands2/publish.go b/core/commands2/publish.go index f7e76ba0a..f7165394e 100644 --- a/core/commands2/publish.go +++ b/core/commands2/publish.go @@ -67,11 +67,11 @@ Publish a <ref> to another public key: switch len(args) { case 2: // name = args[0] - ref = args[1].(string) + ref = args[1] return nil, errors.New("keychains not yet implemented") case 1: // name = n.Identity.ID.String() - ref = args[0].(string) + ref = args[0] } // TODO n.Keychain.Get(name).PrivKey diff --git a/core/commands2/refs.go b/core/commands2/refs.go index d3c243405..a40b3f57e 100644 --- a/core/commands2/refs.go +++ b/core/commands2/refs.go @@ -6,7 +6,6 @@ import ( mh "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multihash" cmds "github.com/jbenet/go-ipfs/commands" "github.com/jbenet/go-ipfs/core" - "github.com/jbenet/go-ipfs/core/commands2/internal" dag "github.com/jbenet/go-ipfs/merkledag" u "github.com/jbenet/go-ipfs/util" ) @@ -57,12 +56,7 @@ Note: list all refs recursively with -r. recursive = false } - paths, err := internal.CastToStrings(req.Arguments()) - if err != nil { - return nil, err - } - - return getRefs(n, paths, unique, recursive) + return getRefs(n, req.Arguments(), unique, recursive) }, Type: &RefsOutput{}, Marshalers: cmds.MarshalerMap{ diff --git a/core/commands2/resolve.go b/core/commands2/resolve.go index db67cfc86..70ee9735e 100644 --- a/core/commands2/resolve.go +++ b/core/commands2/resolve.go @@ -4,7 +4,6 @@ import ( "errors" cmds "github.com/jbenet/go-ipfs/commands" - u "github.com/jbenet/go-ipfs/util" ) var resolveCmd = &cmds.Command{ @@ -59,11 +58,7 @@ Resolve te value of another name: name = n.Identity.ID().String() } else { - var ok bool - name, ok = req.Arguments()[0].(string) - if !ok { - return nil, u.ErrCast() - } + name = req.Arguments()[0] } output, err := n.Namesys.Resolve(name) -- GitLab