func bootstrapMarshaler(res cmds.Response) (io.Reader, error) { v, ok := res.Output().(*BootstrapOutput) if !ok { return nil, u.ErrCast() } buf := new(bytes.Buffer) err := bootstrapWritePeers(buf, "", v.Peers) return buf, err }
} added, err := bootstrapAdd(r, cfg, inputPeers) if err != nil { res.SetError(err, cmds.ErrNormal) return } res.SetOutput(&BootstrapOutput{config.BootstrapPeerStrings(added)}) }, Type: BootstrapOutput{}, Marshalers: cmds.MarshalerMap{ cmds.Text: func(res cmds.Response) (io.Reader, error) { v, ok := res.Output().(*BootstrapOutput) if !ok { return nil, u.ErrCast() } buf := new(bytes.Buffer) if err := bootstrapWritePeers(buf, "added ", v.Peers); err != nil { return nil, err } return buf, nil }, }, } var bootstrapRemoveCmd = &cmds.Command{ Helptext: cmds.HelpText{ Tagline: "Removes peers from the bootstrap list",
}, Run: func(req cmds.Request, res cmds.Response) { nd, err := req.InvocContext().GetNode() if err != nil { res.SetError(err, cmds.ErrNormal) return } if !nd.OnlineMode() { res.SetError(errNotOnline, cmds.ErrClient) return } bs, ok := nd.Exchange.(*bitswap.Bitswap) if !ok { res.SetError(u.ErrCast(), cmds.ErrNormal) return } var ks []key.Key for _, arg := range req.Arguments() { dec := key.B58KeyDecode(arg) if dec == "" { res.SetError(fmt.Errorf("incorrectly formatted key: %s", arg), cmds.ErrNormal) return } ks = append(ks, dec) } bs.CancelWants(ks)
go func() { defer close(outChan) if err := addAllAndPin(req.Files()); err != nil { res.SetError(err, cmds.ErrNormal) return } }() }, PostRun: func(req cmds.Request, res cmds.Response) { if res.Error() != nil { return } outChan, ok := res.Output().(<-chan interface{}) if !ok { res.SetError(u.ErrCast(), cmds.ErrNormal) return } res.SetOutput(nil) quiet, _, err := req.Option("quiet").Bool() if err != nil { res.SetError(u.ErrCast(), cmds.ErrNormal) return } size := int64(0) s, found := req.Values()["size"] if found { size = s.(int64) }
cmds.BoolOption("recursive", "r", "Resolve until the result is not a DNS link"), }, Run: func(req cmds.Request, res cmds.Response) { recursive, _, _ := req.Option("recursive").Bool() name := req.Arguments()[0] resolver := namesys.NewDNSResolver() depth := 1 if recursive { depth = namesys.DefaultDepthLimit } output, err := resolver.ResolveN(req.Context(), name, depth) if err != nil { res.SetError(err, cmds.ErrNormal) return } res.SetOutput(&ResolvedPath{output}) }, Marshalers: cmds.MarshalerMap{ cmds.Text: func(res cmds.Response) (io.Reader, error) { output, ok := res.Output().(*ResolvedPath) if !ok { return nil, util.ErrCast() } return strings.NewReader(output.Path.String()), nil }, }, Type: ResolvedPath{}, }