config

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2026 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AgentPrivateKeysEnv          = "SSH_AGENT_PRIVATE_KEYS"
	BastionHostEnv               = "SSH_BASTION_HOST"
	BastionUserEnv               = "SSH_BASTION_USER"
	BastionPortEnv               = "SSH_BASTION_PORT"
	UserEnv                      = "SSH_USER"
	HostsEnv                     = "SSH_HOSTS"
	PortEnv                      = "SSH_PORT"
	ExtraArgsEnv                 = "SSH_EXTRA_ARGS"
	ConnectionConfigEnv          = "CONNECTION_CONFIG"
	LegacyModeEnv                = "SSH_LEGACY_MODE"
	ModernModeEnv                = "SSH_MODERN_MODE"
	AskBastionPasswordEnv        = "ASK_BASTION_PASS"
	AskSudoPasswordEnv           = "ASK_BECOME_PASS"
	ForceNoPrivateKeysEnv        = "FORCE_NO_PRIVATE_KEYS"
	UseAgentWithNoPrivateKeysEnv = "USE_AGENT_WITH_NO_PRIVATE_KEYS"
)
View Source
const DefaultPort = 22

Variables

View Source
var (
	ErrValidationRuleFailed = fmt.Errorf("validation rule failed")
)

Functions

func ConfigurationOpenAPISpec

func ConfigurationOpenAPISpec() string

func HostOpenAPISpec

func HostOpenAPISpec() string

Types

type AgentPrivateKey

type AgentPrivateKey struct {
	Key        string `json:"key"`
	Passphrase string `json:"passphrase,omitempty"`
	IsPath     bool   `json:"-"`
}

type AskPasswordFunc

type AskPasswordFunc func(promt string) ([]byte, error)

type Config

type Config struct {
	Mode

	User         string `json:"sshUser"`
	Port         *int   `json:"sshPort,omitempty"`
	SudoPassword string `json:"sudoPassword,omitempty"`

	PrivateKeys []AgentPrivateKey `json:"sshAgentPrivateKeys,omitempty"`

	BastionHost     string `json:"sshBastionHost,omitempty"`
	BastionPort     *int   `json:"sshBastionPort,omitempty"`
	BastionUser     string `json:"sshBastionUser,omitempty"`
	BastionPassword string `json:"sshBastionPassword,omitempty"`

	ExtraArgs string `json:"sshExtraArgs,omitempty"`

	ForceUseSSHAgent bool `json:"forceUseSSHAgent,omitempty"`
}

func (*Config) BastionPortString

func (c *Config) BastionPortString() string

func (*Config) Clone

func (c *Config) Clone() *Config

func (*Config) FillDefaults

func (c *Config) FillDefaults() *Config

func (*Config) HaveAuthMethods

func (c *Config) HaveAuthMethods() bool

func (*Config) PortString

func (c *Config) PortString() string

type ConnectionConfig

type ConnectionConfig struct {
	Config *Config
	Hosts  []Host
}

func ParseConnectionConfig

func ParseConnectionConfig(reader io.Reader, sett settings.Settings, opts ...ValidateOption) (*ConnectionConfig, error)

type Flags

type Flags struct {
	Mode

	PrivateKeysPaths []string

	BastionHost string
	BastionPort int
	BastionUser string

	User  string
	Hosts []string
	Port  int

	ExtraArgs string

	ConnectionConfigPath string

	AskBastionPass bool
	AskSudoPass    bool
	// contains filtered or unexported fields
}

func (*Flags) ExtractConfig added in v0.2.0

func (f *Flags) ExtractConfig(args []string, opts ...ValidateOption) (*ConnectionConfig, error)

ExtractConfig if args is nil used os.Args

func (*Flags) FillDefaults

func (f *Flags) FillDefaults() error

func (*Flags) IsConflictBetweenFlags

func (f *Flags) IsConflictBetweenFlags() error

func (*Flags) Parse

func (f *Flags) Parse(args []string) error

Parse pass nil if we should use os.Args

func (*Flags) RewriteFromEnvs

func (f *Flags) RewriteFromEnvs() error

type FlagsParser

type FlagsParser struct {
	*baseflags.BaseParser
	// contains filtered or unexported fields
}

func NewFlagsParser

func NewFlagsParser(sett settings.Settings) *FlagsParser

NewFlagsParser init FlagsParser prefix will trim right all _ ang - symbols and spaces left and right from settings.Settings EnvsPrefix By default parser add _ after prefix for all env vars

func (*FlagsParser) ExtractConfigAfterParse

func (p *FlagsParser) ExtractConfigAfterParse(flags *Flags, opts ...ValidateOption) (*ConnectionConfig, error)

ExtractConfigAfterParse extract ConnectionConfig from flags Flags contains copy of set. For parse use Flags.Parse if flag.FlagSet in Flags is not parse returns error

func (*FlagsParser) InitFlags

func (p *FlagsParser) InitFlags(set *flag.FlagSet) (*Flags, error)

InitFlags init flag.FlagSet and return struct with flags where flag.FlagSet parsed should call before flag.Parse or flag.FlagSet.Parse if set is parsed returns error

func (*FlagsParser) ParseFlagsAndExtractConfig

func (p *FlagsParser) ParseFlagsAndExtractConfig(arguments []string, set *flag.FlagSet, opts ...ValidateOption) (*ConnectionConfig, error)

ParseFlagsAndExtractConfig initialize, parse and extract ConnectionConfig from flags set flag.FlagSet can be nil. If nil, func initialize new flag.FlagSet if arguments is nil extract arguments from os.Args

func (*FlagsParser) WithAsk

func (p *FlagsParser) WithAsk(ask AskPasswordFunc) *FlagsParser

func (*FlagsParser) WithPrivateKeyPasswordExtractor

func (p *FlagsParser) WithPrivateKeyPasswordExtractor(extractor PrivateKeyExtractorFunc) *FlagsParser

type Host

type Host struct {
	Host string `json:"host"`
}

type Mode

type Mode struct {
	ForceLegacy bool `json:"legacyMode,omitempty"`
	ForceModern bool `json:"modernMode,omitempty"`
}

type PrivateKeyExtractorFunc

type PrivateKeyExtractorFunc func(path string, logger log.Logger) (password string, err error)

type ValidateOption

type ValidateOption func(o *validateOptions)

func ParseWithNoPrettyError

func ParseWithNoPrettyError(v bool) ValidateOption

func ParseWithOmitDocInError

func ParseWithOmitDocInError(v bool) ValidateOption

func ParseWithRequiredSSHHost

func ParseWithRequiredSSHHost(v bool) ValidateOption

func ParseWithSkipUnknownKinds

func ParseWithSkipUnknownKinds(v bool) ValidateOption

func ParseWithStrictUnmarshal

func ParseWithStrictUnmarshal(v bool) ValidateOption

Jump to

Keyboard shortcuts

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