IRC support

This commit is contained in:
Andy Dixon
2026-06-17 08:55:56 +01:00
parent 0e6f54901b
commit e1381e66d7
24 changed files with 2729 additions and 51 deletions
+47
View File
@@ -13,6 +13,8 @@ const (
DefaultRAWPort = 23
DefaultGitHubPort = 443
DefaultVNCPort = 5900
DefaultIRCPort = 6667
DefaultIRCTLSPort = 6697
)
// Default timeout values (in seconds).
@@ -122,6 +124,19 @@ func NewProfile(protocol Protocol) Profile {
SSHAuthMethod: "publickey",
SSHSecretMode: SecretModeSaved,
}
case ProtocolIRC:
p.Port = DefaultIRCPort
p.IRC = &IRCConfig{
Nick: "nexus",
RealName: "Nexus Terminal",
ServerPasswordMode: SecretModeAskEveryTime,
NickServMode: SecretModeSaved,
AutoJoinRooms: []string{},
SSHPort: DefaultSSHPort,
SSHAuthMethod: "publickey",
SSHSecretMode: SecretModeSaved,
AutoReconnect: true,
}
}
return p
@@ -186,6 +201,8 @@ func NormalizeProfileDefaults(p *Profile) {
normalizeGitHubConfig(p, defaults.GitHub)
case ProtocolVNC:
normalizeVNCConfig(p, defaults.VNC)
case ProtocolIRC:
normalizeIRCConfig(p, defaults.IRC)
}
}
@@ -201,6 +218,8 @@ func defaultProfileName(p *Profile) string {
return "GitHub"
case ProtocolVNC:
return "VNC"
case ProtocolIRC:
return "IRC"
case ProtocolRAW:
return "RAW TCP"
case ProtocolTelnet:
@@ -340,3 +359,31 @@ func normalizeVNCConfig(p *Profile, defaults *VNCConfig) {
}
cfg.SSHSecretMode = normalizeSecretMode(cfg.SSHSecretMode, defaults.SSHSecretMode)
}
func normalizeIRCConfig(p *Profile, defaults *IRCConfig) {
if p.IRC == nil {
cfg := *defaults
cfg.AutoJoinRooms = append([]string{}, defaults.AutoJoinRooms...)
p.IRC = &cfg
return
}
cfg := p.IRC
if cfg.Nick == "" {
cfg.Nick = defaults.Nick
}
if cfg.RealName == "" {
cfg.RealName = defaults.RealName
}
cfg.ServerPasswordMode = normalizeSecretMode(cfg.ServerPasswordMode, defaults.ServerPasswordMode)
cfg.NickServMode = normalizeSecretMode(cfg.NickServMode, defaults.NickServMode)
if cfg.AutoJoinRooms == nil {
cfg.AutoJoinRooms = []string{}
}
if cfg.SSHPort == 0 {
cfg.SSHPort = defaults.SSHPort
}
if cfg.SSHAuthMethod == "" {
cfg.SSHAuthMethod = defaults.SSHAuthMethod
}
cfg.SSHSecretMode = normalizeSecretMode(cfg.SSHSecretMode, defaults.SSHSecretMode)
}