options

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KiB = 1 << (10 * iota)
	MiB
	GiB
	TiB
)

Define unit constant.

Variables

This section is empty.

Functions

func CreateListener

func CreateListener(addr string) (net.Listener, int, error)

CreateListener create net listener by given address and returns it and port.

func ValidateAddress

func ValidateAddress(addr string) error

ValidateAddress takes an address as a string and validates it. If the input address is not in a valid :port or IP:port format, it returns an error. It also checks if the host part of the address is a valid IP address and if the port number is valid.

Types

type ChainOptions

type ChainOptions struct {
	ChainId   int32  `json:"chain-id" mapstructure:"chain-id"`
	RPC       string `json:"rpc" mapstructure:"rpc"`
	SignerKey string `json:"signer-key" mapstructure:"signer-key"`
}

func NewChainOptions

func NewChainOptions() *ChainOptions

func (*ChainOptions) AddFlags

func (o *ChainOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

func (*ChainOptions) Validate

func (o *ChainOptions) Validate() []error

type ConsulOptions

type ConsulOptions struct {
	// Address is the address of the Consul server
	Addr string `json:"addr,omitempty" mapstructure:"addr"`

	// Scheme is the URI scheme for the Consul server
	Scheme string `json:"scheme,omitempty" mapstructure:"scheme"`
}

ConsulOptions defines options for consul client.

func NewConsulOptions

func NewConsulOptions() *ConsulOptions

NewConsulOptions create a `zero` value instance.

func (*ConsulOptions) AddFlags

func (o *ConsulOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to mysql storage for a specific APIServer to the specified FlagSet.

func (*ConsulOptions) Validate

func (o *ConsulOptions) Validate() []error

Validate verifies flags passed to ConsulOptions.

type EtcdOptions

type EtcdOptions struct {
	Endpoints   []string      `json:"endpoints"               mapstructure:"endpoints"`
	DialTimeout time.Duration `json:"dial-timeout"         mapstructure:"dial-timeout"`
	Username    string        `json:"username"                mapstructure:"username"`
	Password    string        `json:"password"                mapstructure:"password"`
	TLSOptions  *TLSOptions   `json:"tls"               mapstructure:"tls"`
}

EtcdOptions defines options for etcd cluster.

func NewEtcdOptions

func NewEtcdOptions() *EtcdOptions

NewEtcdOptions create a `zero` value instance.

func (*EtcdOptions) AddFlags

func (o *EtcdOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to redis storage for a specific APIServer to the specified FlagSet.

func (*EtcdOptions) Validate

func (o *EtcdOptions) Validate() []error

Validate verifies flags passed to EtcdOptions.

type GRPCOptions

type GRPCOptions struct {
	// Network with server network.
	Network string `json:"network" mapstructure:"network"`

	// Address with server address.
	Addr string `json:"addr" mapstructure:"addr"`

	// Timeout with server timeout. Used by grpc client side.
	Timeout time.Duration `json:"timeout" mapstructure:"timeout"`
}

GRPCOptions are for creating an unauthenticated, unauthorized, insecure port. No one should be using these anymore.

func NewGRPCOptions

func NewGRPCOptions() *GRPCOptions

NewGRPCOptions is for creating an unauthenticated, unauthorized, insecure port. No one should be using these anymore.

func (*GRPCOptions) AddFlags

func (o *GRPCOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to features for a specific api server to the specified FlagSet.

func (*GRPCOptions) Validate

func (o *GRPCOptions) Validate() []error

Validate is used to parse and validate the parameters entered by the user at the command line when the program starts.

type HTTPOptions

type HTTPOptions struct {
	// Network with server network.
	Network string `json:"network" mapstructure:"network"`

	// Address with server address.
	Addr string `json:"addr" mapstructure:"addr"`

	// Timeout with server timeout. Used by http client side.
	Timeout time.Duration `json:"timeout" mapstructure:"timeout"`
}

HTTPOptions contains configuration items related to HTTP server startup.

func NewHTTPOptions

func NewHTTPOptions() *HTTPOptions

NewHTTPOptions creates a HTTPOptions object with default parameters.

func (*HTTPOptions) AddFlags

func (o *HTTPOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to HTTPS server for a specific APIServer to the specified FlagSet.

func (*HTTPOptions) Complete

func (s *HTTPOptions) Complete() error

Complete fills in any fields not set that are required to have valid data.

func (*HTTPOptions) Validate

func (o *HTTPOptions) Validate() []error

Validate is used to parse and validate the parameters entered by the user at the command line when the program starts.

type HealthOptions

type HealthOptions struct {
	// Enable debugging by exposing profiling information.
	HTTPProfile        bool   `json:"enable-http-profiler" mapstructure:"enable-http-profiler"`
	HealthCheckPath    string `json:"check-path" mapstructure:"check-path"`
	HealthCheckAddress string `json:"check-address" mapstructure:"check-address"`
}

HealthOptions defines options for redis cluster.

func NewHealthOptions

func NewHealthOptions() *HealthOptions

NewHealthOptions create a `zero` value instance.

func (*HealthOptions) AddFlags

func (o *HealthOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to redis storage for a specific APIServer to the specified FlagSet.

func (*HealthOptions) ServeHealthCheck

func (o *HealthOptions) ServeHealthCheck()

func (*HealthOptions) Validate

func (o *HealthOptions) Validate() []error

Validate verifies flags passed to HealthOptions.

type IOptions

type IOptions interface {
	// Validate validates all the required options.
	// It can also used to complete options if needed.
	Validate() []error

	// AddFlags adds flags related to given flagset.
	AddFlags(fs *pflag.FlagSet, prefixes ...string)
}

IOptions defines methods to implement a generic options.

type JWTOptions

type JWTOptions struct {
	Key           string        `json:"key" mapstructure:"key"`
	Expired       time.Duration `json:"expired" mapstructure:"expired"`
	MaxRefresh    time.Duration `json:"max-refresh" mapstructure:"max-refresh"`
	SigningMethod string        `json:"signing-method" mapstructure:"signing-method"`
}

JWTOptions contains configuration items related to API server features.

func NewJWTOptions

func NewJWTOptions() *JWTOptions

NewJWTOptions creates a JWTOptions object with default parameters.

func (*JWTOptions) AddFlags

func (s *JWTOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to features for a specific api server to the specified FlagSet.

func (*JWTOptions) Validate

func (s *JWTOptions) Validate() []error

Validate is used to parse and validate the parameters entered by the user at the command line when the program starts.

type MySQLOptions

type MySQLOptions struct {
	Addr                  string        `json:"addr,omitempty" mapstructure:"addr"`
	Username              string        `json:"username,omitempty" mapstructure:"username"`
	Password              string        `json:"-" mapstructure:"password"`
	Database              string        `json:"database" mapstructure:"database"`
	MaxIdleConnections    int           `json:"max-idle-connections,omitempty" mapstructure:"max-idle-connections,omitempty"`
	MaxOpenConnections    int           `json:"max-open-connections,omitempty" mapstructure:"max-open-connections"`
	MaxConnectionLifeTime time.Duration `json:"max-connection-life-time,omitempty" mapstructure:"max-connection-life-time"`
	LogLevel              int           `json:"log-level" mapstructure:"log-level"`
}

MySQLOptions defines options for mysql database.

func NewMySQLOptions

func NewMySQLOptions() *MySQLOptions

NewMySQLOptions create a `zero` value instance.

func (*MySQLOptions) AddFlags

func (o *MySQLOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to mysql storage for a specific APIServer to the specified FlagSet.

func (*MySQLOptions) DSN

func (o *MySQLOptions) DSN() string

DSN return DSN from MySQLOptions.

func (*MySQLOptions) NewDB

func (o *MySQLOptions) NewDB() (*gorm.DB, error)

NewDB create mysql store with the given config.

func (*MySQLOptions) Validate

func (o *MySQLOptions) Validate() []error

Validate verifies flags passed to MySQLOptions.

type RedisOptions

type RedisOptions struct {
	Addr         string        `json:"addr" mapstructure:"addr"`
	Username     string        `json:"username" mapstructure:"username"`
	Password     string        `json:"password" mapstructure:"password"`
	Database     int           `json:"database" mapstructure:"database"`
	MaxRetries   int           `json:"max-retries" mapstructure:"max-retries"`
	MinIdleConns int           `json:"min-idle-conns" mapstructure:"min-idle-conns"`
	DialTimeout  time.Duration `json:"dial-timeout" mapstructure:"dial-timeout"`
	ReadTimeout  time.Duration `json:"read-timeout" mapstructure:"read-timeout"`
	WriteTimeout time.Duration `json:"write-timeout" mapstructure:"write-timeout"`
	PoolTimeout  time.Duration `json:"pool-time" mapstructure:"pool-time"`
	PoolSize     int           `json:"pool-size" mapstructure:"pool-size"`
	// tracing switch
	EnableTrace bool `json:"enable-trace" mapstructure:"enable-trace"`
}

RedisOptions defines options for redis cluster.

func NewRedisOptions

func NewRedisOptions() *RedisOptions

NewRedisOptions create a `zero` value instance.

func (*RedisOptions) AddFlags

func (o *RedisOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to redis storage for a specific APIServer to the specified FlagSet.

func (*RedisOptions) NewClient

func (o *RedisOptions) NewClient() (*redis.Client, error)

func (*RedisOptions) Validate

func (o *RedisOptions) Validate() []error

Validate verifies flags passed to RedisOptions.

type SocialOptions

type SocialOptions struct {
	TelegramBotToken string   `json:"telegram-bot-token" mapstructure:"telegram-bot-token"`
	XBearerToken     string   `json:"x-bearer-token" mapstructure:"x-bearer-token"`
	XClientID        string   `json:"x-client-id" mapstructure:"x-client-id"`
	XClientSecret    string   `json:"x-client-secret" mapstructure:"x-client-secret"`
	XRedirectURL     string   `json:"x-redirect-url" mapstructure:"x-redirect-url"`
	XOfficials       []string `json:"x-officials" mapstructure:"x-officials"`
}

func NewSocialOptions

func NewSocialOptions() *SocialOptions

func (*SocialOptions) AddFlags

func (o *SocialOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

func (*SocialOptions) Validate

func (o *SocialOptions) Validate() []error

type TLSOptions

type TLSOptions struct {
	// UseTLS specifies whether should be encrypted with TLS if possible.
	UseTLS             bool   `json:"use-tls" mapstructure:"use-tls"`
	InsecureSkipVerify bool   `json:"insecure-skip-verify" mapstructure:"insecure-skip-verify"`
	CaCert             string `json:"ca-cert" mapstructure:"ca-cert"`
	Cert               string `json:"cert" mapstructure:"cert"`
	Key                string `json:"key" mapstructure:"key"`
}

TLSOptions is the TLS cert info for serving secure traffic.

func NewTLSOptions

func NewTLSOptions() *TLSOptions

NewTLSOptions create a `zero` value instance.

func (*TLSOptions) AddFlags

func (o *TLSOptions) AddFlags(fs *pflag.FlagSet, prefixes ...string)

AddFlags adds flags related to redis storage for a specific APIServer to the specified FlagSet.

func (*TLSOptions) MustTLSConfig

func (o *TLSOptions) MustTLSConfig() *tls.Config

func (*TLSOptions) Scheme

func (o *TLSOptions) Scheme() string

Scheme returns the URL scheme based on the TLS configuration.

func (*TLSOptions) TLSConfig

func (o *TLSOptions) TLSConfig() (*tls.Config, error)

func (*TLSOptions) Validate

func (o *TLSOptions) Validate() []error

Validate verifies flags passed to TLSOptions.

Jump to

Keyboard shortcuts

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