diff --git a/README.md b/README.md new file mode 100644 index 0000000..2cade6a --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# ssh_config + +This is a Go parser for `ssh_config` files. Importantly, this parser attempts to +preserve comments, so you can manipulate a `ssh_config` file from a program, if +your heart wishes. + +Example usage: + +```go +f, _ := os.Open(filepath.Join(os.Getenv("HOME"), ".ssh", "config")) +cfg, _ := ssh_config.LoadReader(f) +for _, host := range cfg.Hosts { + fmt.Println("patterns:", host.Patterns) + for _, node := range host.Nodes { + fmt.Println(node.String()) + } +} + +// Write the cfg back to disk: +fmt.Println(cfg.String()) +``` + +This is very alpha software. In particular the most useful thing you want to do +with this is figure out the correct HostName and User for a particular host +pattern. There's no way to do this, currently.