#!/usr/bin/ruby

require 'json'
require 'tmpdir'
require 'fileutils'

tmpdir = Dir.mktmpdir
datadir = File.join(tmpdir, 'data')
FileUtils.mkdir_p(datadir)
configdir = File.join(tmpdir, 'config')
FileUtils.mkdir_p(configdir)

File.open(File.join(configdir, 'whitelist'), 'w') do |f|
  f.puts 'ruby'
  f.puts 'ruby-ffi'
  f.puts 'rubygems-integration'
end

failed = 0

command = ['debci', '--quiet', '--data-dir', datadir, '--backend', 'fake', '--config', configdir]
system(*command) or raise("Command " + command.inspect + ' failed!')

Dir.glob(File.join(tmpdir, '**/*.json')).each do |file|
  begin
    JSON.parse(File.read(file))
  rescue JSON::ParserError => exc
    puts "#{file} contains invalid JSON: #{exc.message}"
    failed += 1
  end
end

FileUtils.rm_rf(tmpdir)
exit(failed)

# system('faketime', '+1day', './bin/debci', '--data-dir', $tmpdir, '--backend', 'fake');

