hostname2/get_darwin.go

29 lines
618 B
Go

package hostname
import (
"bytes"
"fmt"
"os/exec"
)
// scutil --get HostName
// scutil --get LocalHostName
// scutil --get ComputerName
// scutil --set HostName my-mac.example.com
func osGetHostname() (string, error) {
return scutil([]string{"-get", "HostName"})
}
// getDomainName executes the 'domainname' command and returns its output.
func scutil(args []string) (string, error) {
cmd := exec.Command("scutil", args)
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
return "", fmt.Errorf("failed to execute 'scutil': %w", err)
}
domain := out.String()
return domain, nil
}