From ec40a29b3dc192e55f4e7e8c75f2581fe8712ceb Mon Sep 17 00:00:00 2001 From: Jeromy Date: Fri, 12 Sep 2014 19:11:54 +0000 Subject: [PATCH] change ExecuteCommand to return an error --- cmd/ipfs/add.go | 5 ++++- cmd/ipfs/cat.go | 6 +++++- cmd/ipfs/ls.go | 5 ++++- daemon/daemon.go | 39 +++++++++++++++++++++------------------ 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/cmd/ipfs/add.go b/cmd/ipfs/add.go index 704d5db63..267e6a310 100644 --- a/cmd/ipfs/add.go +++ b/cmd/ipfs/add.go @@ -50,7 +50,10 @@ func addCmd(c *commander.Command, inp []string) error { return err } - daemon.ExecuteCommand(cmd, n, os.Stdout) + err := daemon.ExecuteCommand(cmd, n, os.Stdout) + if err != nil { + fmt.Println(err) + } } return nil } diff --git a/cmd/ipfs/cat.go b/cmd/ipfs/cat.go index 9e532f5fc..0394b922e 100644 --- a/cmd/ipfs/cat.go +++ b/cmd/ipfs/cat.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "os" "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/gonuts/flag" @@ -38,7 +39,10 @@ func catCmd(c *commander.Command, inp []string) error { return err } - daemon.ExecuteCommand(com, n, os.Stdout) + err := daemon.ExecuteCommand(com, n, os.Stdout) + if err != nil { + fmt.Println(err) + } } return nil } diff --git a/cmd/ipfs/ls.go b/cmd/ipfs/ls.go index 40ed10ffc..8930e5a16 100644 --- a/cmd/ipfs/ls.go +++ b/cmd/ipfs/ls.go @@ -42,7 +42,10 @@ func lsCmd(c *commander.Command, inp []string) error { return err } - daemon.ExecuteCommand(com, n, os.Stdout) + err := daemon.ExecuteCommand(com, n, os.Stdout) + if err != nil { + fmt.Println(err) + } } return nil diff --git a/daemon/daemon.go b/daemon/daemon.go index a846ba002..61a88663e 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -74,10 +74,13 @@ func (dl *DaemonListener) handleConnection(conn net.Conn) { } u.DOut("Got command: %v\n", command) - ExecuteCommand(&command, dl.node, conn) + err := ExecuteCommand(&command, dl.node, conn) + if err != nil { + fmt.Fprintln(conn, "%v\n", err) + } } -func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) { +func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) error { u.DOut("executing command: %s\n", com.Command) switch com.Command { case "add": @@ -86,38 +89,40 @@ func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) { depth = -1 } for _, path := range com.Args { - _, err := commands.AddPath(ipfsnode, path, depth) + nd, err := commands.AddPath(ipfsnode, path, depth) if err != nil { - fmt.Fprintf(out, "addFile error: %v\n", err) - continue + return fmt.Errorf("addFile error: %v", err) } + + k, err := nd.Key() + if err != nil { + return fmt.Errorf("addFile error: %v", err) + } + + fmt.Fprintf(out, "Added node: %s = %s\n", path, k.Pretty()) } case "cat": for _, fn := range com.Args { dagnode, err := ipfsnode.Resolver.ResolvePath(fn) if err != nil { - fmt.Fprintf(out, "catFile error: %v\n", err) - return + return fmt.Errorf("catFile error: %v", err) } read, err := dag.NewDagReader(dagnode, ipfsnode.DAG) if err != nil { - fmt.Fprintln(out, err) - continue + return fmt.Errorf("cat error: %v", err) } _, err = io.Copy(out, read) if err != nil { - fmt.Fprintln(out, err) - continue + return fmt.Errorf("cat error: %v", err) } } case "ls": for _, fn := range com.Args { dagnode, err := ipfsnode.Resolver.ResolvePath(fn) if err != nil { - fmt.Fprintf(out, "ls error: %v\n", err) - return + return fmt.Errorf("ls error: %v", err) } for _, link := range dagnode.Links { @@ -128,18 +133,16 @@ func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) { for _, fn := range com.Args { dagnode, err := ipfsnode.Resolver.ResolvePath(fn) if err != nil { - fmt.Fprintf(out, "pin error: %v\n", err) - return + return fmt.Errorf("pin error: %v", err) } err = ipfsnode.PinDagNode(dagnode) if err != nil { - fmt.Fprintf(out, "pin: %v\n", err) - return + return fmt.Errorf("pin: %v", err) } } default: - fmt.Fprintf(out, "Invalid Command: '%s'\n", com.Command) + return fmt.Errord("Invalid Command: '%s'", com.Command) } }