Sha256: 73c3ebd685d3560a301cf499656de6de1cb02252fddd78389ec7baf84cd0f145

Contents?: true

Size: 1.84 KB

Versions: 1

Compression:

Stored size: 1.84 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("-h", "--help", "Display this help message") do |v|
    puts parser
    exit
  end

  parser.on("-v", "--version", "Display version") do |v|
    puts AutomateIt::VERSION
    exit 0
  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

1 entries across 1 versions & 1 rubygems

Version Path
automateit-0.70923 bin/aifield