#!/usr/bin/env ruby

$:.unshift File.dirname(__FILE__)
$:.unshift File.join(File.dirname(__FILE__), 'lib')
$:.unshift File.join(File.dirname(__FILE__), 'third_parties')

require 'optparse'
require 'gtvs'


gtvsOpts = GTVS::Options.new

opts = OptionParser.new {|opts|
    opts.banner = "Usage: verify-from-flowid [options] <trace name> <gtProto> <gtApp> <flowId> or file with flowIds"
    opts.separator ""
    opts.separator "Specific options:"

    gtvsOpts.set_options(opts)

    opts.separator ""
    opts.separator "Common options:"
    opts.on_tail("-?", "--help", "Show this message") {
        puts opts
        exit
    }
}
opts.parse!(ARGV)

if ARGV.length < 1
  $stderr.puts 'Missing trace name (try --help)'
  exit 1
end
trace = ARGV.shift

if ARGV.length < 1
  $stderr.puts 'Missing gtProto (try --help)'
  exit 1
end
gtProto = ARGV.shift

if ARGV.length < 1
  $stderr.puts 'Missing gtApp (try --help)'
  exit 1
end
gtApp = ARGV.shift

if ARGV.length < 1
  $stderr.puts 'Missing flowId (try --help)'
  exit 1
end
flowId = ARGV.shift

db = GTVS::Connection.get(gtvsOpts)
gtvs = GTVS::GTVS.new(db, trace, gtvsOpts)

ids = nil
if flowId =~ /^\d+$/
  ids = [flowId]
else
  ids = File.open(flowId, 'r').readlines
end

ids.each {|flowId|
  flowId = flowId.to_i
  $stderr.puts "Flow #{flowId} would be marked as #{gtProto}/#{gtApp}"
  gtvs.verify(flowId, gtProto, gtApp)
}

db.close
