#!/usr/bin/env ruby

require 'optparse'
require 'cucumber/messages'
require 'cucumber/html_formatter'

formatter = Cucumber::HTMLFormatter::Formatter.new(STDOUT)

option_parser = OptionParser.new do |opts|
  opts.on '-f', '--format=ndjson|protobuf', 'Input format'

  opts.on_tail("-h", "--help", "Show this message") do
    puts opts
    exit
  end
end
options = {}
option_parser.parse!(into: options)
format = options[:format] || 'ndjson'
message_enumerator = case format
when 'ndjson'
  Cucumber::Messages::NdjsonToMessageEnumerator.new(STDIN)
when 'protobuf'
  Cucumber::Messages::BinaryToMessageEnumerator.new(STDIN)
else
  raise "Unsupported format: '#{format}'"
end

formatter.process_messages(message_enumerator)
