utils

package
v0.8.22 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2022 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

Package utils [general utility functions for the db1000n app]

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckCountry

func CheckCountry(countriesToAvoid []string, strictCountryCheck bool, proxyURLs string, maxFetchRetries int) (bool, string)

CheckCountry checks which country the app is running from and whether it is in the blacklist.

func CheckCountryOrFail added in v0.8.3

func CheckCountryOrFail(cfg *CountryCheckerConfig, proxyURLs string) string

CheckCountryOrFail checks the country of client origin by IP and exits the program if it is in the blacklist.

func Decode

func Decode(input any, output any) error

Decode is an alias to a mapstructure.NewDecoder({Squash: true}).Decode() with WeaklyTypedInput set to true and MatchFunc that only compares aplhanumeric sequence in field names

func Decrypt

func Decrypt(cfg []byte) ([]byte, error)

Decrypt decrypts config using EncryptionKeys

func GetEncryptionKeys

func GetEncryptionKeys() ([]string, error)

GetEncryptionKeys returns list of encryption keys from ENCRYPTION_KEYS env variable name or default value

func GetEnvBoolDefault

func GetEnvBoolDefault(key string, defaultValue bool) bool

GetEnvBoolDefault returns environment variable or default value if no env varible is present

func GetEnvDurationDefault

func GetEnvDurationDefault(key string, defaultValue time.Duration) time.Duration

GetEnvDurationDefault returns environment variable or default value if no env varible is present

func GetEnvIntDefault

func GetEnvIntDefault(key string, defaultValue int) int

GetEnvIntDefault returns environment variable or default value if no env varible is present

func GetEnvStringDefault

func GetEnvStringDefault(key, defaultValue string) string

GetEnvStringDefault returns environment variable or default value if no env varible is present

func IsEncrypted

func IsEncrypted(cfg []byte) bool

IsEncrypted returns true if cfg encrypted with age tool (https://github.com/FiloSottile/age)

func NonNilOrDefault added in v0.8.16

func NonNilOrDefault[T any](v *T, dflt T) T

func PanicHandler

func PanicHandler(logger *zap.Logger)

PanicHandler just stub it in the beginning of every major module invocation to prevent single module failure from crashing the whole app

func Sleep added in v0.8.11

func Sleep(ctx context.Context, t time.Duration) bool

func Unmarshal added in v0.7.9

func Unmarshal(input []byte, output any, format string) error

Types

type BackoffConfig added in v0.8.11

type BackoffConfig struct {
	Multiplier int
	Limit      int
	Timeout    time.Duration
}

func DefaultBackoffConfig added in v0.8.11

func DefaultBackoffConfig() BackoffConfig

type BackoffController added in v0.8.11

type BackoffController struct {
	BackoffConfig
	// contains filtered or unexported fields
}

func (BackoffController) GetTimeout added in v0.8.11

func (c BackoffController) GetTimeout() time.Duration

func (*BackoffController) Increment added in v0.8.11

func (c *BackoffController) Increment() *BackoffController

func (*BackoffController) Reset added in v0.8.11

func (c *BackoffController) Reset()

type Counter added in v0.8.11

type Counter struct {
	Count int
	// contains filtered or unexported fields
}

func (*Counter) Next added in v0.8.11

func (c *Counter) Next() bool

type CountryCheckerConfig added in v0.8.3

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

func NewCountryCheckerConfigWithFlags added in v0.8.3

func NewCountryCheckerConfigWithFlags() *CountryCheckerConfig

NewGlobalConfigWithFlags returns a GlobalConfig initialized with command line flags.

type ProxyFunc added in v0.8.0

type ProxyFunc func(network, addr string) (net.Conn, error)

func GetProxyFunc added in v0.8.0

func GetProxyFunc(proxyURLs string, timeout time.Duration, httpEnabled bool) ProxyFunc

Directories

Path Synopsis
Package metrics [everything related to metrics goes here]
Package metrics [everything related to metrics goes here]
Package ota [allows hot update and reload of the executable]
Package ota [allows hot update and reload of the executable]
Package templates [provides utility functions to enable templating in app configuration]
Package templates [provides utility functions to enable templating in app configuration]

Jump to

Keyboard shortcuts

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