#!/usr/bin/ruby.ruby2.2 

require_relative "../lib/configgin"

options = {}
parser = Cli.make_option_parser(options)

parser.parse!(ARGV)

begin
  Cli.check_opts(options)
rescue ArgMissingError => e
  STDERR.puts("missing argument: #{e}")
  exit(1)
end

jobs = JSON.load(File.read(options[:jobs]))
templates = YAML.load_file(options[:env2conf])

jobs.each do |job, job_config|
  base_config = JSON.load(File.read(job_config['base']))

  job_config['files'].each do |infile, outfile|
    begin
      bosh_spec = EnvironmentConfigTransmogrifier.transmogrify(base_config,
                                                               templates,
                                                               secrets: '/etc/secrets')
    rescue NonHashValueOverride => e
      STDERR.puts e.to_s
      STDERR.puts "Error generating #{job}: #{outfile} from #{infile}"
      exit 1
    end

    Generate.generate(bosh_spec, infile, outfile)
  end
end
