diff options
author | Nat Lasseter <user@4574.co.uk> | 2017-01-19 11:35:24 +0000 |
---|---|---|
committer | Nat Lasseter <user@4574.co.uk> | 2017-01-19 11:35:24 +0000 |
commit | 88e0694bf560d52c86133ff2f40910a2dcb139e9 (patch) | |
tree | d02c4ebe69c47dc714b13409cfd10245d6997537 /bin | |
parent | 07a17b442d7d7a397d076babfaa29fd2620921d7 (diff) |
Much better executable
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/ssh-update-config | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/bin/ssh-update-config b/bin/ssh-update-config index e6cfe93..3833d11 100755 --- a/bin/ssh-update-config +++ b/bin/ssh-update-config @@ -1,8 +1,31 @@ #!/usr/bin/env ruby + +require 'optparse' require 'sshconfig' include SSHConfig -File.open(File.join(ENV["HOME"], ".ssh/config"), "w") do |f| - load File.join(ENV["HOME"], ".ssh/sshconfig") - f.puts $hostlist +output = $stdout +input = File.join(ENV["HOME"], ".ssh/sshconfig") + +parser = OptionParser.new do |opts| + opts.banner = "Usage: ssh-update-config" + opts.on("-h", "--help", "--usage", "Print usage") do + puts parser.banner + puts parser.summarize + exit 0 + end + opts.on("-o MANDATORY", "--output MANDATORY", "Output destination (default: stdout)") do |out| + output = File.open(out, "w") + end + opts.on("-i MANDATORY", "--input MANDATORY", "Input source (default: ~/.ssh/sshconfig") do |inp| + input = inp + end + opts.on("-l MANDATORY", "--load MANDATORY", "Load an SSHConfig extension") do |ext| + require ext + end end +parser.parse! + +load input +output.puts $hostlist +output.flush |