Skip to content

Commit 6926812

Browse files
authored
Merge pull request #5666 from overbool/refactor/commands/object
commands/object: use new cmds
2 parents f337acd + e1d1f68 commit 6926812

File tree

4 files changed

+218
-335
lines changed

4 files changed

+218
-335
lines changed

core/commands/object/diff.go

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
package objectcmd
22

33
import (
4-
"bytes"
54
"fmt"
65
"io"
76

8-
cmds "github.com/ipfs/go-ipfs/commands"
9-
e "github.com/ipfs/go-ipfs/core/commands/e"
7+
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
108
coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
119
"github.com/ipfs/go-ipfs/dagutils"
1210

11+
cmds "gx/ipfs/QmSXUokcP4TJpFfqozT69AVAYRtzXVMUjzQVkYX41R9Svs/go-ipfs-cmds"
1312
cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
1413
)
1514

15+
const (
16+
verboseOptionName = "verbose"
17+
)
18+
1619
type Changes struct {
1720
Changes []*dagutils.Change
1821
}
@@ -49,34 +52,30 @@ Example:
4952
cmdkit.StringArg("obj_b", true, false, "Object to diff."),
5053
},
5154
Options: []cmdkit.Option{
52-
cmdkit.BoolOption("verbose", "v", "Print extra information."),
55+
cmdkit.BoolOption(verboseOptionName, "v", "Print extra information."),
5356
},
54-
Run: func(req cmds.Request, res cmds.Response) {
55-
api, err := req.InvocContext().GetApi()
57+
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
58+
api, err := cmdenv.GetApi(env)
5659
if err != nil {
57-
res.SetError(err, cmdkit.ErrNormal)
58-
return
60+
return err
5961
}
6062

61-
a := req.Arguments()[0]
62-
b := req.Arguments()[1]
63+
a := req.Arguments[0]
64+
b := req.Arguments[1]
6365

6466
pa, err := coreiface.ParsePath(a)
6567
if err != nil {
66-
res.SetError(err, cmdkit.ErrNormal)
67-
return
68+
return err
6869
}
6970

7071
pb, err := coreiface.ParsePath(b)
7172
if err != nil {
72-
res.SetError(err, cmdkit.ErrNormal)
73-
return
73+
return err
7474
}
7575

76-
changes, err := api.Object().Diff(req.Context(), pa, pb)
76+
changes, err := api.Object().Diff(req.Context, pa, pb)
7777
if err != nil {
78-
res.SetError(err, cmdkit.ErrNormal)
79-
return
78+
return err
8079
}
8180

8281
out := make([]*dagutils.Change, len(changes))
@@ -95,45 +94,36 @@ Example:
9594
}
9695
}
9796

98-
res.SetOutput(&Changes{out})
97+
return cmds.EmitOnce(res, &Changes{out})
9998
},
10099
Type: Changes{},
101-
Marshalers: cmds.MarshalerMap{
102-
cmds.Text: func(res cmds.Response) (io.Reader, error) {
103-
v, err := unwrapOutput(res.Output())
104-
if err != nil {
105-
return nil, err
106-
}
100+
Encoders: cmds.EncoderMap{
101+
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *Changes) error {
102+
verbose, _ := req.Options[verboseOptionName].(bool)
107103

108-
verbose, _, _ := res.Request().Option("v").Bool()
109-
changes, ok := v.(*Changes)
110-
if !ok {
111-
return nil, e.TypeErr(changes, v)
112-
}
113-
114-
buf := new(bytes.Buffer)
115-
for _, change := range changes.Changes {
104+
for _, change := range out.Changes {
116105
if verbose {
117106
switch change.Type {
118107
case dagutils.Add:
119-
fmt.Fprintf(buf, "Added new link %q pointing to %s.\n", change.Path, change.After)
108+
fmt.Fprintf(w, "Added new link %q pointing to %s.\n", change.Path, change.After)
120109
case dagutils.Mod:
121-
fmt.Fprintf(buf, "Changed %q from %s to %s.\n", change.Path, change.Before, change.After)
110+
fmt.Fprintf(w, "Changed %q from %s to %s.\n", change.Path, change.Before, change.After)
122111
case dagutils.Remove:
123-
fmt.Fprintf(buf, "Removed link %q (was %s).\n", change.Path, change.Before)
112+
fmt.Fprintf(w, "Removed link %q (was %s).\n", change.Path, change.Before)
124113
}
125114
} else {
126115
switch change.Type {
127116
case dagutils.Add:
128-
fmt.Fprintf(buf, "+ %s %q\n", change.After, change.Path)
117+
fmt.Fprintf(w, "+ %s %q\n", change.After, change.Path)
129118
case dagutils.Mod:
130-
fmt.Fprintf(buf, "~ %s %s %q\n", change.Before, change.After, change.Path)
119+
fmt.Fprintf(w, "~ %s %s %q\n", change.Before, change.After, change.Path)
131120
case dagutils.Remove:
132-
fmt.Fprintf(buf, "- %s %q\n", change.Before, change.Path)
121+
fmt.Fprintf(w, "- %s %q\n", change.Before, change.Path)
133122
}
134123
}
135124
}
136-
return buf, nil
137-
},
125+
126+
return nil
127+
}),
138128
},
139129
}

0 commit comments

Comments
 (0)