utils

package
v0.0.0-...-c5d900d Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2019 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GeoIPService = fx.Provide(func(lc fx.Lifecycle, args *arguments.Args, logger log15.Logger) (GeoIP, error) {
	if !args.GeoIP.Enabled {
		return nil, nil
	}
	s, err := NewGeoIP(args.GeoIP.DatabasePath)
	if err != nil {
		return nil, err
	}
	if lc != nil && s != nil {
		Append(lc, s, logger)
	}
	return s, nil
})
View Source
var GeoIPURL = "https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz"
View Source
var HTMLType = filetype.NewType("html", "text/html")
View Source
var IcalType = filetype.NewType("ics", "text/calendar")
View Source
var MarkdownType = filetype.NewType("md", "text/markdown")
View Source
var OdtType = filetype.NewType("odt", "application/vnd.oasis.opendocument.text")
View Source
var PlainType = filetype.NewType("txt", "text/plain")
View Source
var RedisService = fx.Provide(func(lc fx.Lifecycle, args *arguments.Args, logger log15.Logger) (RedisResult, error) {
	var collector, consumer RedisConn
	var err error

	if args.Collector.Type == "redis" {
		collector, err = NewRedisClient(args.Redis.URL)
		if err != nil {
			return RedisResult{}, err
		}
	}
	if args.Consumer.GetType() == arguments.Redis {
		consumer, err = NewRedisClient(args.Redis.URL)
		if err != nil {
			return RedisResult{}, err
		}
	}

	Append(lc, collector, logger)
	Append(lc, consumer, logger)
	return RedisResult{
		Collector: collector,
		Consumer:  consumer,
	}, nil
})
View Source
var RestType = filetype.NewType("rst", "text/x-rst")

Functions

func Append

func Append(lc fx.Lifecycle, svc Service, logger log15.Logger)

func Autoclose

func Autoclose(w io.Closer, f func() error) (err error)

func Compress

func Compress(w io.Writer, msg msgp.Encodable) error

func Decompress

func Decompress(r io.Reader, msg msgp.Decodable) error

func DownloadGeoIP

func DownloadGeoIP(dest, u string) error

func Guess

func Guess(filename string, content []byte) (types.Type, error)

func GuessReader

func GuessReader(filename string, reader io.Reader) (types.Type, io.Reader, error)

func IsBinary

func IsBinary(content []byte) bool

func IsPrivateIP

func IsPrivateIP(ip net.IP) bool

func IsTemp

func IsTemp(e error) bool

func IsTimeout

func IsTimeout(e error) bool

func JSONEncoder

func JSONEncoder(w io.Writer) *json.Encoder

func JSONMarshal

func JSONMarshal(v interface{}) ([]byte, error)

func JSONString

func JSONString(v interface{}) string

func NewHTTPCacheClient

func NewHTTPCacheClient(timeout time.Duration, maxConns int, basePath string, retries int) *httpclient.Client

func NewHTTPClient

func NewHTTPClient(timeout time.Duration, maxConns int, retries int) *httpclient.Client

func NewStdinListener

func NewStdinListener() net.Listener

func NewULID

func NewULID() ulid.ULID

func Normalize

func Normalize(s string) string

func Snake

func Snake(s string) string

func WrapListener

func WrapListener(l net.Listener, stype string, logger log15.Logger) net.Listener

Types

type Closeable

type Closeable interface {
	// Close stops and cleans the long-running services. It should return only when all the service goroutines have stopped.
	Close() error
}

type GeoIP

type GeoIP interface {
	Service
	GeoIP(ip net.IP) (*models.GeoIPResult, error)
}

func NewGeoIP

func NewGeoIP(databasePath string) (GeoIP, error)

type Prestartable

type Prestartable interface {
	// Prestart perform some immediate initialization steps.
	Prestart() error
}

type RConn

type RConn struct {
	net.Conn
	// contains filtered or unexported fields
}

func (RConn) Close

func (c RConn) Close() error

type RListener

type RListener struct {
	net.Listener
	// contains filtered or unexported fields
}

func (RListener) Accept

func (l RListener) Accept() (net.Conn, error)

func (RListener) Close

func (l RListener) Close() error

type RedisConn

type RedisConn interface {
	Service
	Prestartable
	Closeable
	Client() *redis.Client
}

func NewRedisClient

func NewRedisClient(uri string) (RedisConn, error)

type RedisResult

type RedisResult struct {
	fx.Out
	Collector RedisConn `name:"collector"`
	Consumer  RedisConn `name:"consumer"`
}

type Service

type Service interface {
	Name() string
}

type Startable

type Startable interface {
	// Start starts long-running services. It should return only when the passed context is done.
	Start(ctx context.Context) error
}

type StdinListener

type StdinListener struct {
	// contains filtered or unexported fields
}

func (*StdinListener) Accept

func (l *StdinListener) Accept() (net.Conn, error)

func (*StdinListener) Addr

func (l *StdinListener) Addr() net.Addr

func (*StdinListener) Close

func (l *StdinListener) Close() error

type TempFile

type TempFile struct {
	// contains filtered or unexported fields
}

func NewTempFile

func NewTempFile(content []byte) (*TempFile, error)

func (*TempFile) Name

func (t *TempFile) Name() string

func (*TempFile) Remove

func (t *TempFile) Remove() (err error)

func (*TempFile) RemoveAfter

func (t *TempFile) RemoveAfter(f func(name string) error) (err error)

Jump to

Keyboard shortcuts

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