ssh_config icon indicating copy to clipboard operation
ssh_config copied to clipboard

Add interface for walking whole config

Open docwhat opened this issue 6 years ago • 2 comments

There is no easy way to walk through all the Hosts in a config file if it uses Include. You have to basically detect that there is an include and manually load each config (taking wildcards into account) and walk them.

Instead, it would be nice if:

  • Config.Expand() returned a Config with all the includes expanded, which would allow Config.Hosts to show all hosts.
  • A Config.walk(callback Function(host Host)) was added.

My use case is I'm trying to write an ssh-completion script that returns all possible completions for use with shells and fzf.

Ideally, if it was passed a partial string (e.g. ssh-host-lister gith) it would narrow the results down to ones that start with or contain gith.

I have another use case, which is that openssh versions prior to 7.3 do not handle Include. This could be used to flatten multiple configuration files (via Include) into one.

docwhat avatar Jan 15 '19 21:01 docwhat

Ah this is a good idea. Do you want to take a stab at implementing it or is this a feature request only?

kevinburke avatar Jan 15 '19 21:01 kevinburke

I took a run at it from a library consumer point of view.

I’ll see if I can find some time.

Sent with GitHawk

docwhat avatar Jan 15 '19 21:01 docwhat