From 88e0694bf560d52c86133ff2f40910a2dcb139e9 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Thu, 19 Jan 2017 11:35:24 +0000 Subject: Much better executable --- bin/ssh-update-config | 29 ++++++++++++++++++++++++++--- sshconfig.gemspec | 2 +- 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" -- cgit v1.2.1