clix

package
v2.5.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2018 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FlagPort = "port"

	FlagLogFormat = "log-format"
	FlagLogLevel  = "log-level"
	FlagLogTags   = "log-tags"

	FlagStatsDSN    = "stats-dsn"
	FlagStatsPrefix = "stats-prefix"
	FlagStatsTags   = "stats-tags"

	FlagProfiler     = "profiler"
	FlagProfilerPort = "profiler-port"

	FlagKafkaConsumerBrokers = "kafka-consumer-brokers"
	FlagKafkaConsumerGroupID = "kafka-consumer-group-id"
	FlagKafkaConsumerTopic   = "kafka-consumer-topic"
	FlagKafkaProducerBrokers = "kafka-producer-brokers"
	FlagKafkaProducerTopic   = "kafka-producer-topic"

	FlagRedisDSN = "redis-dsn"
)

Variables

View Source
var CommonFlags = Flags{
	cli.StringFlag{
		Name:   FlagLogFormat,
		Value:  Defaults.LogFormat,
		Usage:  "Specify the format of logs. Supported formats: 'terminal', 'json'",
		EnvVar: "LOG_FORMAT",
	},
	cli.StringFlag{
		Name:   FlagLogLevel,
		Value:  Defaults.LogLevel,
		Usage:  "Specify the log level. E.g. 'debug', 'warning'.",
		EnvVar: "LOG_LEVEL",
	},
	cli.StringSliceFlag{
		Name:   FlagLogTags,
		Usage:  "A list of tags appended to every log. Format: key=value.",
		EnvVar: "LOG_TAGS",
	},

	cli.StringFlag{
		Name:   FlagStatsDSN,
		Usage:  "The URL of a stats backend.",
		EnvVar: "STATS_DSN",
	},
	cli.StringFlag{
		Name:   FlagStatsPrefix,
		Usage:  "The prefix of the measurements names.",
		EnvVar: "STATS_PREFIX",
	},
	cli.StringSliceFlag{
		Name:   FlagStatsTags,
		Usage:  "A list of tags appended to every measurement. Format: key=value.",
		EnvVar: "STATS_TAGS",
	},
}
View Source
var Defaults = defaults{
	Port:      "80",
	LogFormat: "json",
	LogLevel:  "info",

	ProfilerPort: "8081",
}
View Source
var KafkaConsumerFlags = Flags{
	cli.StringSliceFlag{
		Name:   FlagKafkaConsumerBrokers,
		Usage:  "Kafka consumer brokers.",
		EnvVar: "KAFKA_CONSUMER_BROKERS",
	},
	cli.StringFlag{
		Name:   FlagKafkaConsumerGroupID,
		Usage:  "Kafka consumer group id.",
		EnvVar: "KAFKA_CONSUMER_GROUP_ID",
	},
	cli.StringFlag{
		Name:   FlagKafkaConsumerTopic,
		Usage:  "Kafka topic to consume from.",
		EnvVar: "KAFKA_CONSUMER_TOPIC",
	},
}
View Source
var KafkaProducerFlags = Flags{
	cli.StringSliceFlag{
		Name:   FlagKafkaProducerBrokers,
		Usage:  "Kafka producer brokers.",
		EnvVar: "KAFKA_PRODUCER_BROKERS",
	},
	cli.StringFlag{
		Name:   FlagKafkaProducerTopic,
		Usage:  "Kafka topic to produce into.",
		EnvVar: "KAFKA_PRODUCER_TOPIC",
	},
}
View Source
var ProfilerFlags = Flags{
	cli.BoolFlag{
		Name:   FlagProfiler,
		Usage:  "Enable profiler server.",
		EnvVar: "PROFILER",
	},
	cli.StringFlag{
		Name:   FlagProfilerPort,
		Value:  Defaults.ProfilerPort,
		Usage:  "Port for the profiler to listen on.",
		EnvVar: "PROFILER_PORT",
	},
}
View Source
var ProfilerServer = &http.Server{
	ReadTimeout:  time.Minute,
	WriteTimeout: time.Minute,
}
View Source
var RedisFlags = Flags{
	cli.StringFlag{
		Name:   FlagRedisDSN,
		Usage:  "The DSN of Redis.",
		EnvVar: "REDIS_DSN",
	},
}
View Source
var ServerFlags = Flags{
	cli.StringFlag{
		Name:   FlagPort,
		Value:  Defaults.Port,
		Usage:  "Port for HTTP server to listen on",
		EnvVar: "PORT",
	},
}

Functions

func NewLogger

func NewLogger(c Ctx) (log15.Logger, error)

func NewStats

func NewStats(c Ctx, l log.Logger) (stats.Stats, error)

func RunProfiler

func RunProfiler(c *cli.Context) error

func SplitTags

func SplitTags(slice []string, sep string) ([]interface{}, error)

Types

type Context

type Context struct {
	*cli.Context
	// contains filtered or unexported fields
}

func NewContext

func NewContext(c *cli.Context, opts ...CtxOptionFunc) (*Context, error)

func (*Context) Close

func (c *Context) Close() error

type Ctx

type Ctx interface {
	Bool(name string) bool
	String(name string) string
	StringSlice(name string) []string
}

type CtxOptionFunc

type CtxOptionFunc func(ctx *Context)

func Logger

func Logger(l log.Logger) CtxOptionFunc

func Stats

func Stats(s stats.Stats) CtxOptionFunc

type Flags

type Flags []cli.Flag

func (Flags) Merge

func (f Flags) Merge(flags ...Flags) Flags

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL