funcli

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2024 License: BSD-3-Clause Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CliConfig added in v0.4.1

type CliConfig struct {
	ConnectConfig *ConnectConfig `arg:"subcommand:connect" help:"Connect to a funcie deployment to allow local development."`

	Environment string `arg:"--env" help:"Funcie environment used if multiple deployments are present." default:"default"`
	Region      string `arg:"env:AWS_REGION" help:"AWS region to use for deployments; otherwise uses the default AWS CLI region."`
	// contains filtered or unexported fields
}

CliConfig provides user input parameters specific to the CLI tool.

func NewCliConfig added in v0.4.1

func NewCliConfig(version string) *CliConfig

func (*CliConfig) Version added in v0.4.1

func (c *CliConfig) Version() string

type ConfigStore

type ConfigStore interface {
	// GetConfigValue retrieves the value of a configuration key.
	GetConfigValue(ctx context.Context, key string) (string, error)
}

ConfigStore retrieves dynamic configuration values on-demand.

func NewConfigStore

func NewConfigStore(config *CliConfig, ssmClient SsmClient) ConfigStore

NewConfigStore creates a new ConfigStore.

type ConnectCommand

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

func NewConnectCommand

func NewConnectCommand(
	cliConfig *CliConfig,
	configStore ConfigStore,
	connectClient SsmClient,
	tunneller Tunneller,
	connectivityService ConnectivityService,
) *ConnectCommand

func (*ConnectCommand) Run

func (c *ConnectCommand) Run(ctx context.Context) error

type ConnectConfig added in v0.4.1

type ConnectConfig struct {
	RemoteHost string `arg:"--remote-host,-r" help:"Override the remote host to connect to instead of the Redis default."`
	RemotePort int    `arg:"--remote-port,-p" help:"Override the remote port to bind to." default:"6379"`
	LocalPort  int    `arg:"--local-port,-l" help:"Override the local port to bind to." default:"6379"`
}

type ConnectivityService

type ConnectivityService interface {
	// WaitForConnectivity waits for the given endpoint to be reachable, or the context to be done.
	WaitForConnectivity(ctx context.Context, endpoint string) error
}

ConnectivityService provides utilities for testing / awaiting internet connectivity.

func NewHttpConnectivityService

func NewHttpConnectivityService(opts ...HttpConnectivityServiceOptionSetter) ConnectivityService

NewHttpConnectivityService creates a new HttpConnectivityService with optional settings.

type HttpConnectivityServiceOptionSetter

type HttpConnectivityServiceOptionSetter func(*HttpConnectivityServiceOptions)

func WithRetryInterval

func WithRetryInterval(interval time.Duration) HttpConnectivityServiceOptionSetter

WithRetryInterval sets the retry interval for the HttpConnectivityService.

type HttpConnectivityServiceOptions

type HttpConnectivityServiceOptions struct {
	RetryInterval time.Duration
}

type SsmClient added in v0.4.1

type SsmClient interface {
	GetParameter(ctx context.Context, params *ssm.GetParameterInput, optFns ...func(*ssm.Options)) (*ssm.GetParameterOutput, error)
	StartSession(ctx context.Context, params *ssm.StartSessionInput, optFns ...func(*ssm.Options)) (*ssm.StartSessionOutput, error)
	TerminateSession(ctx context.Context, params *ssm.TerminateSessionInput, optFns ...func(*ssm.Options)) (*ssm.TerminateSessionOutput, error)
}

SsmClient is a minimal interface for the AWS SSM client with only the methods used by the CLI.

type TunnelOptions

type TunnelOptions struct {
	// Headers is a map of headers to send with the connection request.
	Headers    http.Header
	Output     ssm.StartSessionOutput
	InstanceId string
}

TunnelOptions provides optional arguments for creating a network tunnel.

type Tunneller

type Tunneller interface {
	// OpenTunnel starts a tunnel to a remote host on the given port locally.
	OpenTunnel(ctx context.Context, endpoint string, localPort int, opts *TunnelOptions) error
}

Tunneller is an interface for creating a tunnel to a remote host.

func NewWebhookTunneller

func NewWebhookTunneller(conf *CliConfig) Tunneller

NewWebhookTunneller creates a new WebhookTunnel.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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