change ExecuteCommand to return an error
Jeromy committed
Sep 12, 2014 at 19:11 UTC
ec40a29b3dc192e55f4e7e8c75f2581fe8712ceb
4 files changed
+34
-21
cmd/ipfs/add.go
+4
-1
@@ -50,7 +50,10 @@ func addCmd(c *commander.Command, inp []string) error {
50
return err
51
}
52
53
- daemon.ExecuteCommand(cmd, n, os.Stdout)
53
+ err := daemon.ExecuteCommand(cmd, n, os.Stdout)
54
+ if err != nil {
55
+ fmt.Println(err)
56
+ }
57
}
58
return nil
59
}
cmd/ipfs/cat.go
+5
-1
@@ -1,6 +1,7 @@
1
package main
2
3
import (
4
+ "fmt"
5
"os"
6
7
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/gonuts/flag"
@@ -38,7 +39,10 @@ func catCmd(c *commander.Command, inp []string) error {
39
return err
40
}
41
41
- daemon.ExecuteCommand(com, n, os.Stdout)
42
+ err := daemon.ExecuteCommand(com, n, os.Stdout)
43
+ if err != nil {
44
+ fmt.Println(err)
45
+ }
46
}
47
return nil
48
}
cmd/ipfs/ls.go
+4
-1
@@ -42,7 +42,10 @@ func lsCmd(c *commander.Command, inp []string) error {
42
return err
43
}
44
45
- daemon.ExecuteCommand(com, n, os.Stdout)
45
+ err := daemon.ExecuteCommand(com, n, os.Stdout)
46
+ if err != nil {
47
+ fmt.Println(err)
48
+ }
49
}
50
51
return nil
daemon/daemon.go
+21
-18
@@ -74,10 +74,13 @@ func (dl *DaemonListener) handleConnection(conn net.Conn) {
74
}
75
76
u.DOut("Got command: %v\n", command)
77
- ExecuteCommand(&command, dl.node, conn)
77
+ err := ExecuteCommand(&command, dl.node, conn)
78
+ if err != nil {
79
+ fmt.Fprintln(conn, "%v\n", err)
80
+ }
81
}
82
80
-func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) {
83
+func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) error {
84
u.DOut("executing command: %s\n", com.Command)
85
switch com.Command {
86
case "add":
@@ -86,38 +89,40 @@ func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) {
89
depth = -1
90
}
91
for _, path := range com.Args {
89
- _, err := commands.AddPath(ipfsnode, path, depth)
92
+ nd, err := commands.AddPath(ipfsnode, path, depth)
93
+ if err != nil {
94
+ return fmt.Errorf("addFile error: %v", err)
95
+ }
96
+
97
+ k, err := nd.Key()
98
if err != nil {
91
- fmt.Fprintf(out, "addFile error: %v\n", err)
92
- continue
99
+ return fmt.Errorf("addFile error: %v", err)
100
}
101
+
102
+ fmt.Fprintf(out, "Added node: %s = %s\n", path, k.Pretty())
103
}
104
case "cat":
105
for _, fn := range com.Args {
106
dagnode, err := ipfsnode.Resolver.ResolvePath(fn)
107
if err != nil {
99
- fmt.Fprintf(out, "catFile error: %v\n", err)
100
- return
108
+ return fmt.Errorf("catFile error: %v", err)
109
}
110
111
read, err := dag.NewDagReader(dagnode, ipfsnode.DAG)
112
if err != nil {
105
- fmt.Fprintln(out, err)
106
- continue
113
+ return fmt.Errorf("cat error: %v", err)
114
}
115
116
_, err = io.Copy(out, read)
117
if err != nil {
111
- fmt.Fprintln(out, err)
112
- continue
118
+ return fmt.Errorf("cat error: %v", err)
119
}
120
}
121
case "ls":
122
for _, fn := range com.Args {
123
dagnode, err := ipfsnode.Resolver.ResolvePath(fn)
124
if err != nil {
119
- fmt.Fprintf(out, "ls error: %v\n", err)
120
- return
125
+ return fmt.Errorf("ls error: %v", err)
126
}
127
128
for _, link := range dagnode.Links {
@@ -128,18 +133,16 @@ func ExecuteCommand(com *Command, ipfsnode *core.IpfsNode, out io.Writer) {
133
for _, fn := range com.Args {
134
dagnode, err := ipfsnode.Resolver.ResolvePath(fn)
135
if err != nil {
131
- fmt.Fprintf(out, "pin error: %v\n", err)
132
- return
136
+ return fmt.Errorf("pin error: %v", err)
137
}
138
139
err = ipfsnode.PinDagNode(dagnode)
140
if err != nil {
137
- fmt.Fprintf(out, "pin: %v\n", err)
138
- return
141
+ return fmt.Errorf("pin: %v", err)
142
}
143
}
144
default:
142
- fmt.Fprintf(out, "Invalid Command: '%s'\n", com.Command)
145
+ return fmt.Errord("Invalid Command: '%s'", com.Command)
146
}
147
}
148