cmds/bootstrap: use EmitOnce directly
License: MIT Signed-off-by: Overbool <overbool.xu@gmail.com>
Overbool committed
Nov 7, 2018 at 17:11 UTC
bc4a9ef7c280e377621908343073486aa6dcea3e
1 file changed
+46
-18
core/commands/bootstrap.go
+46
-18
@@ -5,13 +5,13 @@ import (
5
"io"
6
"sort"
7
8
- oldcmds "github.com/ipfs/go-ipfs/commands"
8
+ cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
9
repo "github.com/ipfs/go-ipfs/repo"
10
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
11
12
- cmds "gx/ipfs/QmSXUokcP4TJpFfqozT69AVAYRtzXVMUjzQVkYX41R9Svs/go-ipfs-cmds"
12
+ cmds "gx/ipfs/Qma6uuSyjkecGhMFFLfzyJDPyoDtNJSHJNweDccZhaWkgU/go-ipfs-cmds"
13
config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config"
14
- "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
14
+ cmdkit "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
15
)
16
17
type BootstrapOutput struct {
@@ -75,6 +75,10 @@ in the bootstrap list).
75
76
inputPeers = defltPeers
77
} else {
78
+ if err := req.ParseBodyArgs(); err != nil {
79
+ return err
80
+ }
81
+
82
parsedPeers, err := config.ParseBootstrapPeers(req.Arguments)
83
if err != nil {
84
return err
@@ -87,8 +91,12 @@ in the bootstrap list).
91
return errors.New("no bootstrap peers to add")
92
}
93
90
- ctx := env.(*oldcmds.Context)
91
- r, err := fsrepo.Open(ctx.ConfigRoot)
94
+ cfgRoot, err := cmdenv.GetConfigRoot(env)
95
+ if err != nil {
96
+ return err
97
+ }
98
+
99
+ r, err := fsrepo.Open(cfgRoot)
100
if err != nil {
101
return err
102
}
@@ -103,7 +111,7 @@ in the bootstrap list).
111
return err
112
}
113
106
- return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(added)})
114
+ return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(added)})
115
},
116
Type: BootstrapOutput{},
117
Encoders: cmds.EncoderMap{
@@ -125,8 +133,12 @@ in the bootstrap list).`,
133
return err
134
}
135
128
- ctx := env.(*oldcmds.Context)
129
- r, err := fsrepo.Open(ctx.ConfigRoot)
136
+ cfgRoot, err := cmdenv.GetConfigRoot(env)
137
+ if err != nil {
138
+ return err
139
+ }
140
+
141
+ r, err := fsrepo.Open(cfgRoot)
142
if err != nil {
143
return err
144
}
@@ -142,7 +154,7 @@ in the bootstrap list).`,
154
return err
155
}
156
145
- return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(added)})
157
+ return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(added)})
158
},
159
Type: BootstrapOutput{},
160
Encoders: cmds.EncoderMap{
@@ -175,8 +187,12 @@ var bootstrapRemoveCmd = &cmds.Command{
187
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
188
all, _ := req.Options[bootstrapAllOptionName].(bool)
189
178
- ctx := env.(*oldcmds.Context)
179
- r, err := fsrepo.Open(ctx.ConfigRoot)
190
+ cfgRoot, err := cmdenv.GetConfigRoot(env)
191
+ if err != nil {
192
+ return err
193
+ }
194
+
195
+ r, err := fsrepo.Open(cfgRoot)
196
if err != nil {
197
return err
198
}
@@ -190,6 +206,10 @@ var bootstrapRemoveCmd = &cmds.Command{
206
if all {
207
removed, err = bootstrapRemoveAll(r, cfg)
208
} else {
209
+ if err := req.ParseBodyArgs(); err != nil {
210
+ return err
211
+ }
212
+
213
input, perr := config.ParseBootstrapPeers(req.Arguments)
214
if perr != nil {
215
return err
@@ -201,7 +221,7 @@ var bootstrapRemoveCmd = &cmds.Command{
221
return err
222
}
223
204
- return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(removed)})
224
+ return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(removed)})
225
},
226
Type: BootstrapOutput{},
227
Encoders: cmds.EncoderMap{
@@ -218,8 +238,12 @@ var bootstrapRemoveAllCmd = &cmds.Command{
238
},
239
240
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
221
- ctx := env.(*oldcmds.Context)
222
- r, err := fsrepo.Open(ctx.ConfigRoot)
241
+ cfgRoot, err := cmdenv.GetConfigRoot(env)
242
+ if err != nil {
243
+ return err
244
+ }
245
+
246
+ r, err := fsrepo.Open(cfgRoot)
247
if err != nil {
248
return err
249
}
@@ -234,7 +258,7 @@ var bootstrapRemoveAllCmd = &cmds.Command{
258
return err
259
}
260
237
- return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(removed)})
261
+ return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(removed)})
262
},
263
Type: BootstrapOutput{},
264
Encoders: cmds.EncoderMap{
@@ -251,8 +275,12 @@ var bootstrapListCmd = &cmds.Command{
275
},
276
277
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
254
- ctx := env.(*oldcmds.Context)
255
- r, err := fsrepo.Open(ctx.ConfigRoot)
278
+ cfgRoot, err := cmdenv.GetConfigRoot(env)
279
+ if err != nil {
280
+ return err
281
+ }
282
+
283
+ r, err := fsrepo.Open(cfgRoot)
284
if err != nil {
285
return err
286
}
@@ -267,7 +295,7 @@ var bootstrapListCmd = &cmds.Command{
295
return err
296
}
297
270
- return res.Emit(&BootstrapOutput{config.BootstrapPeerStrings(peers)})
298
+ return cmds.EmitOnce(res, &BootstrapOutput{config.BootstrapPeerStrings(peers)})
299
},
300
Type: BootstrapOutput{},
301
Encoders: cmds.EncoderMap{