diff --git a/.changes/unreleased/Changed-20250210-165532.yaml b/.changes/unreleased/Changed-20250210-165532.yaml new file mode 100644 index 0000000..c5b38bd --- /dev/null +++ b/.changes/unreleased/Changed-20250210-165532.yaml @@ -0,0 +1,3 @@ +kind: Changed +body: Hosts passed to `exec host` now checked against default SSH config files +time: 2025-02-10T16:55:32.936776556-06:00 diff --git a/cmd/host.go b/cmd/host.go index 62f27d2..ff805ab 100644 --- a/cmd/host.go +++ b/cmd/host.go @@ -15,8 +15,10 @@ var ( } ) -// Holds command list to run +// Holds list of hosts to run commands on var hostsList []string + +// Holds command list to run var cmdList []string func init() { @@ -48,7 +50,13 @@ func Host(cmd *cobra.Command, args []string) { for _, h := range hostsList { _, hostFound := backyConfOpts.Hosts[h] if !hostFound { - logging.ExitWithMSG("host "+h+" not found", 1, &backyConfOpts.Logger) + // check if h exists in the config file + hostFoundInConfig, s := backy.CheckIfHostHasHostName(h) + if !hostFoundInConfig { + logging.ExitWithMSG("host "+h+" not found", 1, &backyConfOpts.Logger) + } + // create host with hostname and host + backyConfOpts.Hosts[h] = &backy.Host{Host: h, HostName: s} } } if cmdList == nil { diff --git a/pkg/backy/ssh.go b/pkg/backy/ssh.go index 8cdbbc7..f0a11bb 100644 --- a/pkg/backy/ssh.go +++ b/pkg/backy/ssh.go @@ -757,3 +757,12 @@ func (h *Host) DetectOS(opts *ConfigOpts) (string, error) { osName := string(output) return osName, nil } + +func CheckIfHostHasHostName(host string) (bool, string) { + HostName, err := ssh_config.DefaultUserSettings.GetStrict(host, "HostName") + if err != nil { + return false, "" + } + println(HostName) + return HostName != "", HostName +}