func (h *hipchatInput) Init(ctx *cli.Context) error { username := ctx.String("hipchat_username") password := ctx.String("hipchat_password") server := ctx.String("hipchat_server") debug := ctx.Bool("hipchat_debug") if len(username) == 0 { return errors.New("require username") } if len(password) == 0 { return errors.New("require password") } if len(server) == 0 { return errors.New("require server") } h.username = username h.password = password h.server = server h.debug = debug return nil }
func (p *slackInput) Init(ctx *cli.Context) error { debug := ctx.Bool("slack_debug") token := ctx.String("slack_token") if len(token) == 0 { return errors.New("missing slack token") } p.debug = debug p.token = token return nil }
func (c *cmd) Before(ctx *cli.Context) error { // Due to logger issues with glog, we need to do this os.Args = os.Args[:1] flag.Set("logtostderr", fmt.Sprintf("%v", ctx.Bool("logtostderr"))) flag.Set("alsologtostderr", fmt.Sprintf("%v", ctx.Bool("alsologtostderr"))) flag.Set("stderrthreshold", ctx.String("stderrthreshold")) flag.Set("log_backtrace_at", ctx.String("log_backtrace_at")) flag.Set("log_dir", ctx.String("log_dir")) flag.Set("vmodule", ctx.String("vmodule")) flag.Set("v", ctx.String("v")) flag.Parse() // If flags are set then use them otherwise do nothing var serverOpts []server.Option var clientOpts []client.Option // Set the broker if len(ctx.String("broker")) > 0 { if b, ok := c.opts.Brokers[ctx.String("broker")]; ok { n := b(strings.Split(ctx.String("broker_address"), ",")) *c.opts.Broker = n } else { return fmt.Errorf("Broker %s not found", ctx.String("broker")) } serverOpts = append(serverOpts, server.Broker(*c.opts.Broker)) clientOpts = append(clientOpts, client.Broker(*c.opts.Broker)) } // Set the registry if len(ctx.String("registry")) > 0 { if r, ok := c.opts.Registries[ctx.String("registry")]; ok { n := r(strings.Split(ctx.String("registry_address"), ",")) *c.opts.Registry = n } else { return fmt.Errorf("Registry %s not found", ctx.String("registry")) } serverOpts = append(serverOpts, server.Registry(*c.opts.Registry)) clientOpts = append(clientOpts, client.Registry(*c.opts.Registry)) (*c.opts.Selector).Init(selector.Registry(*c.opts.Registry)) clientOpts = append(clientOpts, client.Selector(*c.opts.Selector)) (*c.opts.Broker).Init(broker.Registry(*c.opts.Registry)) } // Set the selector if len(ctx.String("selector")) > 0 { if s, ok := c.opts.Selectors[ctx.String("selector")]; ok { n := s(selector.Registry(*c.opts.Registry)) *c.opts.Selector = n } else { return fmt.Errorf("Selector %s not found", ctx.String("selector")) } // No server option here. Should there be? clientOpts = append(clientOpts, client.Selector(*c.opts.Selector)) } // Set the transport if len(ctx.String("transport")) > 0 { if t, ok := c.opts.Transports[ctx.String("transport")]; ok { n := t(strings.Split(ctx.String("transport_address"), ",")) *c.opts.Transport = n } else { return fmt.Errorf("Transport %s not found", ctx.String("transport")) } serverOpts = append(serverOpts, server.Transport(*c.opts.Transport)) clientOpts = append(clientOpts, client.Transport(*c.opts.Transport)) } // Parse the server options metadata := make(map[string]string) for _, d := range ctx.StringSlice("server_metadata") { var key, val string parts := strings.Split(d, "=") key = parts[0] if len(parts) > 1 { val = strings.Join(parts[1:], "=") } metadata[key] = val } if len(metadata) > 0 { serverOpts = append(serverOpts, server.Metadata(metadata)) } if len(ctx.String("server_name")) > 0 { serverOpts = append(serverOpts, server.Name(ctx.String("server_name"))) } if len(ctx.String("server_version")) > 0 { serverOpts = append(serverOpts, server.Version(ctx.String("server_version"))) } if len(ctx.String("server_id")) > 0 { serverOpts = append(serverOpts, server.Id(ctx.String("server_id"))) } if len(ctx.String("server_address")) > 0 { serverOpts = append(serverOpts, server.Address(ctx.String("server_address"))) } if len(ctx.String("server_advertise")) > 0 { serverOpts = append(serverOpts, server.Advertise(ctx.String("server_advertise"))) } // We have some command line opts for the server. // Lets set it up if len(serverOpts) > 0 { (*c.opts.Server).Init(serverOpts...) } // Use an init option? if len(clientOpts) > 0 { (*c.opts.Client).Init(clientOpts...) } return nil }