#!/usr/bin/env ruby

require 'amrita2/specgenerator'
require 'optparse'

include Amrita2

opt = {}
keys = []
ARGV.options do |opts|
  script_name = File.basename($0)
  opts.banner = "Usage: ruby #{script_name} [options]"

  opts.on("-k", "--key=attr", String,
          "specify the name of attribute for key",
          "Default: id") { |k| keys << k}
  opts.separator ""


  opts.separator ""
  opts.on("-h", "--help",
          "Show this help message.") { puts opts; exit }
  
  opts.parse!
end


if ARGV.size > 0
  ARGV.each do |fname|
    doc = REXML::Document.new(File.new(fname))
    g = SpecGenerator.new(doc, opt)
    keys.each do |k|
      g.add_key(k)
    end
    out = fname + ".rb"
    File::open(out, "w") do |outf|
      outf.print(g.generate_all(fname))
    end
  end
else
  doc = REXML::Document.new(STDIN)
  g = SpecGenerator.new(doc, opt)
  keys.each do |k|
      g.add_key(k)
  end
  print g.generate_all
end
