diff options
| author | Jeff Carr <[email protected]> | 2024-11-01 21:41:46 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-11-01 21:41:46 -0500 |
| commit | 7e1460f9f633572def950f005080f899613ba9d0 (patch) | |
| tree | df2ac08c5813291431dee7d9f226b2827dd757c7 /hostname.go | |
| parent | 40e811b3b39ffe8d6c2394dc024bb0770933683a (diff) | |
getDomainname()v0.22.1
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'hostname.go')
| -rw-r--r-- | hostname.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/hostname.go b/hostname.go index bf4c4a7..9b38d4a 100644 --- a/hostname.go +++ b/hostname.go @@ -3,8 +3,11 @@ package linuxstatus import ( + "fmt" "io/ioutil" + "strings" + "go.wit.com/lib/gui/shell" "go.wit.com/log" // will try to get this hosts FQDN @@ -80,6 +83,17 @@ func (ls *LinuxStatus) setHostShort() { } } +// getDomainName extracts the domain name from a given hostname +func getDomainName(hostname string) (string, error) { + parts := strings.Split(hostname, ".") + if len(parts) < 3 { + return "", fmt.Errorf("hostname '%s' is too short to extract a domain name", hostname) + } + // Join all parts except the first one, which is assumed to be a subdomain + domain := strings.Join(parts[1:], ".") + return domain, nil +} + func lookupHostname() { if !me.Ready() { return @@ -107,6 +121,27 @@ func lookupHostname() { if hostfqdn != hostname { log.Log(WARN, "hostname", hostname, "does not equal fqdn.FqdnHostname()", hostfqdn) // TODO: figure out what is wrong + if dn == "(none)" { + realdn, err := getDomainName(hostfqdn) + if err == nil { + log.Log(WARN, "need to run: 'domainname", realdn, "' here") + me.changed = true + me.hostnameStatus.SetText("FIXING") + shell.RunPath("", []string{"domainname", realdn}) + return + } else { + log.Log(WARN, "getDomainName() err =", err) + log.Log(WARN, "/etc/hostname is too short. let the user set the name here.") + // me.changed = true + me.hostnameStatus.SetText("INVALID DOMAIN NAME") + // return + } + } + log.Log(WARN, "don't know what to do here with domainname") + log.Log(WARN, "check that /etc/hostname is valid?") + // me.changed = true + me.hostnameStatus.SetText("UNKNOWN") + // return } var test string |
