Documentation ¶
Overview ¶
Package ssh exists to provide an api to configure and read from an ssh file
brev ssh host file entry format:
Host <workspace-dns-name> Hostname 0.0.0.0 IdentityFile /home//.brev/brev.pem User brev Port <some-available-port>
also think that file stuff should probably live in files package TODO migrate to using dns name for hostname
Index ¶
- Constants
- func MakeSSHEntry(workspaceIdentifier entity.WorkspaceLocalID, port string, ...) (string, error)
- func WorkspacesFromWorkspaceWithMeta(wwm []entity.WorkspaceWithMeta) []entity.Workspace
- type BrevHostValuesSet
- type BrevPorts
- type Config
- type ConfigUpdater
- type ConfigUpdaterStore
- type IdentityPortMap
- type JetBrainsGatewayConfig
- func (jbgc *JetBrainsGatewayConfig) GetBrevHostValueSet() BrevHostValuesSet
- func (jbgc *JetBrainsGatewayConfig) GetBrevPorts() (BrevPorts, error)
- func (jbgc *JetBrainsGatewayConfig) GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error)
- func (jbgc *JetBrainsGatewayConfig) Sync(identifierPortMapping IdentityPortMap) error
- type JetBrainsGatewayConfigStore
- type JetbrainsGatewayConfigXML
- type JetbrainsGatewayConfigXMLComponent
- type JetbrainsGatewayConfigXMLConfigs
- type JetbrainsGatewayConfigXMLSSHConfig
- type JetbrainsGatewayConfigXMLSSHOption
- type Reader
- type SSHConfig
- func (s SSHConfig) GetBrevHostValueSet() BrevHostValuesSet
- func (s SSHConfig) GetBrevHostValues() []entity.WorkspaceLocalID
- func (s SSHConfig) GetBrevPorts() (BrevPorts, error)
- func (s SSHConfig) GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error)
- func (s SSHConfig) GetPrivateKeyFilePath() string
- func (s *SSHConfig) PruneInactiveWorkspaces(identityPortMap IdentityPortMap) error
- func (s *SSHConfig) Sync(identifierPortMapping IdentityPortMap) error
- type SSHConfigEntryV2
- type SSHConfigurer
- func (sshConfigurer *SSHConfigurer) GetActiveWorkspaceIdentifiers() []entity.WorkspaceLocalID
- func (sshConfigurer SSHConfigurer) GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error)
- func (sshConfigurer *SSHConfigurer) GetIdentityPortMap() (IdentityPortMap, error)
- func (sshConfigurer *SSHConfigurer) Sync() error
- type SSHConfigurerStore
- type SSHConfigurerV2
- func (s SSHConfigurerV2) AddIncludeToUserConfig(conf string, brevConfigPath string) (string, error)
- func (s SSHConfigurerV2) CreateNewSSHConfig(workspaces []entity.Workspace) (string, error)
- func (s SSHConfigurerV2) EnsureConfigHasInclude() error
- func (s SSHConfigurerV2) Update(workspaces []entity.Workspace) error
- type SSHConfigurerV2Store
- type SSHStore
- type Writer
Constants ¶
View Source
const SSHConfigEntryTemplateV2 = `` /* 133-byte string literal not displayed */
Variables ¶
This section is empty.
Functions ¶
func MakeSSHEntry ¶
func WorkspacesFromWorkspaceWithMeta ¶ added in v0.6.2
func WorkspacesFromWorkspaceWithMeta(wwm []entity.WorkspaceWithMeta) []entity.Workspace
NADER IS SO FUCKING SORRY FOR DOING THIS TWICE BUT I HAVE NO CLUE WHERE THIS HELPER FUNCTION SHOULD GO SO ITS COPY/PASTED ELSEWHERE IF YOU MODIFY IT MODIFY IT EVERYWHERE OR PLEASE PUT IT IN ITS PROPER PLACE. thank you you're the best <3
Types ¶
type BrevHostValuesSet ¶
type BrevHostValuesSet map[entity.WorkspaceLocalID]bool
type ConfigUpdater ¶ added in v0.6.0
type ConfigUpdater struct { Store ConfigUpdaterStore Configs []Config }
func (ConfigUpdater) GetTaskSpec ¶ added in v0.6.0
func (c ConfigUpdater) GetTaskSpec() tasks.TaskSpec
func (ConfigUpdater) Run ¶ added in v0.6.0
func (c ConfigUpdater) Run() error
type ConfigUpdaterStore ¶ added in v0.6.0
type IdentityPortMap ¶
type IdentityPortMap map[entity.WorkspaceLocalID]string
type JetBrainsGatewayConfig ¶
func NewJetBrainsGatewayConfig ¶
func NewJetBrainsGatewayConfig(store JetBrainsGatewayConfigStore) (*JetBrainsGatewayConfig, error)
func (*JetBrainsGatewayConfig) GetBrevHostValueSet ¶
func (jbgc *JetBrainsGatewayConfig) GetBrevHostValueSet() BrevHostValuesSet
func (*JetBrainsGatewayConfig) GetBrevPorts ¶
func (jbgc *JetBrainsGatewayConfig) GetBrevPorts() (BrevPorts, error)
func (*JetBrainsGatewayConfig) GetConfiguredWorkspacePort ¶
func (jbgc *JetBrainsGatewayConfig) GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error)
func (*JetBrainsGatewayConfig) Sync ¶
func (jbgc *JetBrainsGatewayConfig) Sync(identifierPortMapping IdentityPortMap) error
type JetbrainsGatewayConfigXML ¶
type JetbrainsGatewayConfigXML struct { XMLName xml.Name `xml:"application"` Component JetbrainsGatewayConfigXMLComponent `xml:"component"` }
type JetbrainsGatewayConfigXMLComponent ¶
type JetbrainsGatewayConfigXMLComponent struct { Configs JetbrainsGatewayConfigXMLConfigs `xml:"configs"` Name string `xml:"name,attr,omitempty"` }
type JetbrainsGatewayConfigXMLConfigs ¶
type JetbrainsGatewayConfigXMLConfigs struct {
SSHConfigs []JetbrainsGatewayConfigXMLSSHConfig `xml:"sshConfig"`
}
type JetbrainsGatewayConfigXMLSSHConfig ¶
type JetbrainsGatewayConfigXMLSSHConfig struct { ID string `xml:"id,attr,omitempty"` CustomName entity.WorkspaceLocalID `xml:"customName,attr,omitempty"` NameFormat string `xml:"nameFormat,attr,omitempty"` UseOpenSSHConfig string `xml:"useOpenSSHConfig,attr,omitempty"` Host string `xml:"host,attr,omitempty"` Port string `xml:"port,attr,omitempty"` KeyPath string `xml:"keyPath,attr,omitempty"` Username string `xml:"username,attr,omitempty"` Options []JetbrainsGatewayConfigXMLSSHOption `xml:"option,omitempty"` }
type Reader ¶
type Reader interface { GetBrevPorts() (BrevPorts, error) GetBrevHostValueSet() BrevHostValuesSet GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error) }
type SSHConfig ¶
type SSHConfig struct {
// contains filtered or unexported fields
}
func NewSSHConfig ¶
func (SSHConfig) GetBrevHostValueSet ¶
func (s SSHConfig) GetBrevHostValueSet() BrevHostValuesSet
func (SSHConfig) GetBrevHostValues ¶
func (s SSHConfig) GetBrevHostValues() []entity.WorkspaceLocalID
Hostname is a loaded term so using values
func (SSHConfig) GetBrevPorts ¶
func (SSHConfig) GetConfiguredWorkspacePort ¶
func (s SSHConfig) GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error)
func (SSHConfig) GetPrivateKeyFilePath ¶
func (*SSHConfig) PruneInactiveWorkspaces ¶
func (s *SSHConfig) PruneInactiveWorkspaces(identityPortMap IdentityPortMap) error
func (*SSHConfig) Sync ¶
func (s *SSHConfig) Sync(identifierPortMapping IdentityPortMap) error
type SSHConfigEntryV2 ¶ added in v0.6.0
type SSHConfigurer ¶
type SSHConfigurer struct { Reader Reader Writers []Writer // contains filtered or unexported fields }
func NewSSHConfigurer ¶
func NewSSHConfigurer(workspaces []entity.WorkspaceWithMeta, reader Reader, writers []Writer, store SSHConfigurerStore, privateKey string) *SSHConfigurer
func (*SSHConfigurer) GetActiveWorkspaceIdentifiers ¶
func (sshConfigurer *SSHConfigurer) GetActiveWorkspaceIdentifiers() []entity.WorkspaceLocalID
func (SSHConfigurer) GetConfiguredWorkspacePort ¶
func (sshConfigurer SSHConfigurer) GetConfiguredWorkspacePort(workspaceIdentifier entity.WorkspaceLocalID) (string, error)
func (*SSHConfigurer) GetIdentityPortMap ¶
func (sshConfigurer *SSHConfigurer) GetIdentityPortMap() (IdentityPortMap, error)
func (*SSHConfigurer) Sync ¶
func (sshConfigurer *SSHConfigurer) Sync() error
type SSHConfigurerStore ¶ added in v0.6.2
type SSHConfigurerV2 ¶ added in v0.6.0
type SSHConfigurerV2 struct {
// contains filtered or unexported fields
}
SSHConfigurerV2 speciallizes in configuring ssh config with ProxyCommand
func NewSSHConfigurerV2 ¶ added in v0.6.0
func NewSSHConfigurerV2(store SSHConfigurerV2Store) *SSHConfigurerV2
func (SSHConfigurerV2) AddIncludeToUserConfig ¶ added in v0.6.0
func (s SSHConfigurerV2) AddIncludeToUserConfig(conf string, brevConfigPath string) (string, error)
func (SSHConfigurerV2) CreateNewSSHConfig ¶ added in v0.6.0
func (s SSHConfigurerV2) CreateNewSSHConfig(workspaces []entity.Workspace) (string, error)
func (SSHConfigurerV2) EnsureConfigHasInclude ¶ added in v0.6.0
func (s SSHConfigurerV2) EnsureConfigHasInclude() error
type SSHConfigurerV2Store ¶ added in v0.6.0
type Writer ¶
type Writer interface {
Sync(IdentityPortMap) error
}
Click to show internal directories.
Click to hide internal directories.