diff --git a/beam/server.go b/beam/server.go index 96104a0a68..23a2e09baa 100644 --- a/beam/server.go +++ b/beam/server.go @@ -27,6 +27,12 @@ func (s *Server) OnVerb(v Verb, h Sender) *Server { return s } +func (s *Server) OnLog(h func(...string) error) *Server { + return s.OnVerb(Log, Handler(func(msg *Message) error { + return h(msg.Args...) + })) +} + func (s *Server) OnLs(h func() ([]string, error)) *Server { return s.OnVerb(Ls, Handler(func(msg *Message) error { names, err := h() @@ -55,6 +61,12 @@ func (s *Server) OnAttach(h func(name string, ret Sender) error) *Server { })) } +func (s *Server) OnError(h func(...string) error) *Server { + return s.OnVerb(Error, Handler(func(msg *Message) error { + return h(msg.Args...) + })) +} + func (s *Server) OnGet(h func() (string, error)) *Server { return s.OnVerb(Get, Handler(func(msg *Message) error { content, err := h() diff --git a/swarmd/swarmd.go b/swarmd/swarmd.go index dccecdb080..864311d4b0 100644 --- a/swarmd/swarmd.go +++ b/swarmd/swarmd.go @@ -25,14 +25,14 @@ func main() { func cmdDaemon(c *cli.Context) { app := beam.NewServer() - app.OnLog(beam.Handler(func(msg *beam.Message) error { - log.Printf("%s\n", strings.Join(msg.Args, " ")) + app.OnLog(func(args ...string) error { + log.Printf("%s\n", strings.Join(args, " ")) return nil - })) - app.OnError(beam.Handler(func(msg *beam.Message) error { - Fatalf("Fatal: %v", strings.Join(msg.Args[:1], "")) + }) + app.OnError(func(args ...string) error { + Fatalf("Fatal: %v", strings.Join(args[:1], "")) return nil - })) + }) back := backends.New() if len(c.Args()) == 0 { names, err := back.Ls()