cmds/refs: remove redundant func
License: MIT Signed-off-by: Overbool <overbool.xu@gmail.com>
Overbool committed
Nov 6, 2018 at 10:51 UTC
30c6dd9bc1073734ea5925bca607907cc545aa14
3 files changed
+25
-78
core/commands/filestore.go
+2
-12
@@ -203,18 +203,8 @@ var dupsFileStore = &cmds.Command{
203
204
return nil
205
},
206
- Encoders: cmds.EncoderMap{
207
- cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RefWrapper) error {
208
- if out.Err != "" {
209
- return fmt.Errorf(out.Err)
210
- }
211
-
212
- fmt.Fprintln(w, out.Ref)
213
-
214
- return nil
215
- }),
216
- },
217
- Type: RefWrapper{},
206
+ Encoders: refsEncoderMap,
207
+ Type: RefWrapper{},
208
}
209
210
func getFilestore(env cmds.Environment) (*core.IpfsNode, *filestore.Filestore, error) {
core/commands/refs.go
+22
-66
@@ -1,25 +1,33 @@
1
package commands
2
3
import (
4
- "bytes"
4
"context"
5
"errors"
6
"fmt"
7
"io"
8
"strings"
9
11
- oldcmds "github.com/ipfs/go-ipfs/commands"
10
core "github.com/ipfs/go-ipfs/core"
11
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
14
- e "github.com/ipfs/go-ipfs/core/commands/e"
12
13
cid "gx/ipfs/QmR8BauakNcBa3RbE4nbQu76PDiJgoQgz8AJdhJuiU4TAw/go-cid"
14
path "gx/ipfs/QmRG3XuGwT7GYuAqgWDJBKTzdaHMwAnc1x7J2KHEXNHxzG/go-path"
15
+ cmds "gx/ipfs/Qma6uuSyjkecGhMFFLfzyJDPyoDtNJSHJNweDccZhaWkgU/go-ipfs-cmds"
16
ipld "gx/ipfs/QmcKKBwfz6FyQdHR2jsXrrF6XeSBXYL86anmWNewpFpoF5/go-ipld-format"
19
- cmds "gx/ipfs/QmSXUokcP4TJpFfqozT69AVAYRtzXVMUjzQVkYX41R9Svs/go-ipfs-cmds"
17
cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
18
)
19
20
+var refsEncoderMap = cmds.EncoderMap{
21
+ cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RefWrapper) error {
22
+ if out.Err != "" {
23
+ return fmt.Errorf(out.Err)
24
+ }
25
+ fmt.Fprintln(w, out.Ref)
26
+
27
+ return nil
28
+ }),
29
+}
30
+
31
// KeyList is a general type for outputting lists of keys
32
type KeyList struct {
33
Keys []cid.Cid
@@ -33,25 +41,7 @@ const (
41
refsMaxDepthOptionName = "max-depth"
42
)
43
36
-// KeyListTextMarshaler outputs a KeyList as plaintext, one key per line
37
-func KeyListTextMarshaler(res oldcmds.Response) (io.Reader, error) {
38
- out, err := unwrapOutput(res.Output())
39
- if err != nil {
40
- return nil, err
41
- }
42
-
43
- output, ok := out.(*KeyList)
44
- if !ok {
45
- return nil, e.TypeErr(output, out)
46
- }
47
-
48
- buf := new(bytes.Buffer)
49
- for _, key := range output.Keys {
50
- buf.WriteString(key.String() + "\n")
51
- }
52
- return buf, nil
53
-}
54
-
44
+// RefsCmd is the `ipfs refs` command
45
var RefsCmd = &cmds.Command{
46
Helptext: cmdkit.HelpText{
47
Tagline: "List links (references) from an object.",
@@ -78,6 +68,11 @@ NOTE: List all references recursively by using the flag '-r'.
68
cmdkit.IntOption(refsMaxDepthOptionName, "Only for recursive refs, limits fetch and listing to the given depth").WithDefault(-1),
69
},
70
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
71
+ err := req.ParseBodyArgs()
72
+ if err != nil {
73
+ return err
74
+ }
75
+
76
ctx := req.Context
77
n, err := cmdenv.GetNode(env)
78
if err != nil {
@@ -134,17 +129,8 @@ NOTE: List all references recursively by using the flag '-r'.
129
130
return res.Emit(out)
131
},
137
- Encoders: cmds.EncoderMap{
138
- cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RefWrapper) error {
139
- if out.Err != "" {
140
- return fmt.Errorf(out.Err)
141
- }
142
- fmt.Fprintln(w, out.Ref)
143
-
144
- return nil
145
- }),
146
- },
147
- Type: RefWrapper{},
132
+ Encoders: refsEncoderMap,
133
+ Type: RefWrapper{},
134
}
135
136
var RefsLocalCmd = &cmds.Command{
@@ -177,37 +163,8 @@ Displays the hashes of all local objects.
163
164
return nil
165
},
180
- Encoders: cmds.EncoderMap{
181
- cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *RefWrapper) error {
182
- if out.Err != "" {
183
- return fmt.Errorf(out.Err)
184
- }
185
- fmt.Fprintln(w, out.Ref)
186
-
187
- return nil
188
- }),
189
- },
190
- Type: RefWrapper{},
191
-}
192
-
193
-var refsMarshallerMap = oldcmds.MarshalerMap{
194
- cmds.Text: func(res oldcmds.Response) (io.Reader, error) {
195
- v, err := unwrapOutput(res.Output())
196
- if err != nil {
197
- return nil, err
198
- }
199
-
200
- obj, ok := v.(*RefWrapper)
201
- if !ok {
202
- return nil, e.TypeErr(obj, v)
203
- }
204
-
205
- if obj.Err != "" {
206
- return nil, errors.New(obj.Err)
207
- }
208
-
209
- return strings.NewReader(obj.Ref + "\n"), nil
210
- },
166
+ Encoders: refsEncoderMap,
167
+ Type: RefWrapper{},
168
}
169
170
func objectsForPaths(ctx context.Context, n *core.IpfsNode, paths []string) ([]ipld.Node, error) {
@@ -247,7 +204,6 @@ type RefWriter struct {
204
// WriteRefs writes refs of the given object to the underlying writer.
205
func (rw *RefWriter) WriteRefs(n ipld.Node) (int, error) {
206
return rw.writeRefsRecursive(n, 0)
250
-
207
}
208
209
func (rw *RefWriter) writeRefsRecursive(n ipld.Node, depth int) (int, error) {
core/commands/root.go
+1
@@ -155,6 +155,7 @@ var RootRO = &cmds.Command{}
155
156
var CommandsDaemonROCmd = CommandsCmd(RootRO)
157
158
+// RefsROCmd is `ipfs refs` command
159
var RefsROCmd = &cmds.Command{}
160
161
var rootROSubcommands = map[string]*cmds.Command{