diff --git a/sshconfig.go b/manssh.go similarity index 99% rename from sshconfig.go rename to manssh.go index 52ef73d..5a4ecb3 100644 --- a/sshconfig.go +++ b/manssh.go @@ -119,17 +119,20 @@ func parseConfig(p string) (map[string]*ssh_config.Config, map[string]*HostConfi configMap := map[string]*ssh_config.Config{p: cfg} for _, host := range cfg.Hosts { + isInclude := false for _, node := range host.Nodes { switch t := node.(type) { case *ssh_config.Include: + isInclude = true for fp, config := range t.GetFiles() { configMap[fp] = config addHosts(aliasMap, fp, config.Hosts...) } - case *ssh_config.KV: - addHosts(aliasMap, p, host) } } + if !isInclude { + addHosts(aliasMap, p, host) + } } addHosts(aliasMap, p, &ssh_config.Host{ Patterns: []*ssh_config.Pattern{(&ssh_config.Pattern{}).SetStr("*")}, diff --git a/sshconfig_test.go b/manssh_test.go similarity index 100% rename from sshconfig_test.go rename to manssh_test.go diff --git a/models.go b/models.go index 32a51ee..20ba86f 100644 --- a/models.go +++ b/models.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/fatih/color" + "github.com/xwjdsh/ssh_config" )