#!/usr/bin/env ruby require 'erb' require 'optparse' class Converter def initialize(apikey, query_engine, pg_role) @apikey = apikey @query_engine = query_engine @pg_role = pg_role end def convert(temp_path, out_path) temp = File.read(temp_path) File.write(out_path, ERB.new(temp).result(binding)) end end if __FILE__ == $0 options = {:role => 'postgres'} op = OptionParser.new do |opts| opts.banner = "Usage: TD_TEST_APIKEY=your_td_test_apikey #{$0} query_engine [options]" opts.on("-r", "--role ROLE", "Role in PostgreSQL") do |v| options[:role] = v end end op.parse! unless ARGV.size >= 1 puts op exit 1 end query_engine = ARGV.shift unless apikey = ENV['TD_TEST_APIKEY'] puts "Environment variable TD_TEST_APIKEY isn't set" puts op exit 1 end unless %w|hive presto|.include?(query_engine) puts "query_engine should be either 'hive' or 'presto'" puts op exit 1 end conv = Converter.new(apikey, query_engine, options[:role]) conv.convert('sql/treasuredata_fdw.sql.erb', 'sql/treasuredata_fdw.sql') conv.convert('expected/treasuredata_fdw.out.erb', 'expected/treasuredata_fdw.out') end