Sha256: 288c3da81062abada0084eba89a7d57f7f8c8f7c95f8879379b1a145b9bbd50c
Contents?: true
Size: 1.95 KB
Versions: 24
Compression:
Stored size: 1.95 KB
Contents
#!/usr/bin/env ruby # XXX What can go wrong with this loading approach? libdir = File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")) if File.directory?(libdir) and File.exists?(File.join(libdir, "automateit.rb")) $LOAD_PATH.unshift(libdir) end require 'rubygems' require 'optparse' require 'automateit' OptionParser.new do |parser| PROG = File.basename($0) opts = {} parser.banner = <<EOB #{PROG} - tool for querying AutomateIt fields Usage: #{PROG} [options] query Examples: # Load 'myproject' and get value of 'user' field in 'myapp' hash: #{PROG} -p myproject myapp#user # Same but using environmental variable to specify project: AUTOMATEIT_PROJECT=myproject #{PROG} myapp#user # Dump the 'myapp' hash contents as YAML #{PROG} -y myapp#user # Dump the 'myapp' hash contents as XML #{PROG} -x myapp#user Options: EOB parser.on("-p", "--project PATH", "Set project path") do |v| opts[:project] = v end parser.on("-Y", "--yaml", "Dump as YAML") do |v| opts[:yaml] = v end parser.on("-X", "--xml", "Dump as XML") do |v| opts[:xml] = v end parser.on("-a", "--add TAGS", "Add list of space separated tags") do |v| opts[:tags] = [v.split].flatten end parser.on("-v", "--version", "Display version") do |v| puts AutomateIt::VERSION exit 0 end parser.on("-h", "--help", "Display this help message") do |v| puts parser exit end args = parser.parse!.dup # Clear ARGV so that IRB doesn't try to parse our options opts[:args] = args ARGV.clear query = args.first unless args.empty? interpreter = AutomateIt.new(:project => opts[:project]) result = interpreter.lookup(query) if result.nil? puts result.inspect exit 1 elsif opts[:yaml] puts result.to_yaml elsif opts[:xml] require 'active_support/core_ext/hash' require 'active_support/core_ext/array' puts result.to_xml else puts result.is_a?(String) ? result : result.inspect end exit 0 end
Version data entries
24 entries across 24 versions & 1 rubygems