#!/usr/bin/env ruby

LKP_SRC = ENV['LKP_SRC'] || File.dirname(File.dirname(File.realpath($PROGRAM_NAME)))

require 'yaml'
require 'pp'
require "#{LKP_SRC}/lib/constant"
require "#{LKP_SRC}/lib/job"

$testcase = YAML.load_file(ARGV[0])
# pp $testcase

def add_keyval(ah, k, v)
  if ah.class == Hash
    ah[k] = v
  elsif ah.class == Array && ah[0].class == Hash
    h = {}
    h[k] = v
    ah.push(h)
  end
end

add_keyval($testcase, 'kconfig', DEVEL_HOURLY_KCONFIGS[0])

def expand_one
  for_each($testcase) do |k, v|
    next unless k == 'params'

    last_item = ''
    for_each(v) { |kk, _vv| last_item = kk }
    for_each(v) do |kk, vv|
      if (vv.class == Array || vv.class == Hash) && vv.size > 1
        copy = deepcopy(vv)
        for_each(copy) do |kkk, _vvv|
          restore(vv, copy)
          vv.keep_if { |a, _b| a == kkk }
          expand_one
        end
        restore(vv, copy)
        break
      elsif kk == last_item
        puts $testcase.to_yaml
      end
    end
  end
end

expand_one
