aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Lasseter <user@4574.co.uk>2017-01-19 11:35:24 +0000
committerNat Lasseter <user@4574.co.uk>2017-01-19 11:35:24 +0000
commit88e0694bf560d52c86133ff2f40910a2dcb139e9 (patch)
treed02c4ebe69c47dc714b13409cfd10245d6997537
parent07a17b442d7d7a397d076babfaa29fd2620921d7 (diff)
Much better executable
-rwxr-xr-xbin/ssh-update-config29
-rw-r--r--sshconfig.gemspec2
2 files changed, 27 insertions, 4 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
diff --git a/sshconfig.gemspec b/sshconfig.gemspec
index ea6c5fa..fa2499e 100644
--- a/sshconfig.gemspec
+++ b/sshconfig.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = 'sshconfig'
- s.version = '12'
+ s.version = '13'
s.date = '2017-01-11'
s.summary = "SSH Config DSL"
s.description = "A DSL to generate SSH config"