#!/usr/bin/env ruby

require 'gcc_to_clang_analyzer/prepare_compiler_commandline'
require 'gcc_to_clang_analyzer/rewrite_plist_file'
require 'logger'
logger = Logger.new(STDOUT)
logger.level = Logger::WARN
logger.debug("original #{ARGV.join(' ')}")

command_line, output = PrepareCompilerCommandline.transform(ARGV)

cl = command_line.join(' ')
logger.info("executing '#{cl}'")
            
res = system(cl)
unless res
  logger.warn("problems while executing #{cl}")
  exit res
end

if output.length > 0
  workspace_path = File.absolute_path('..')
  prefix = File.absolute_path('.').gsub(workspace_path+'/', '')
  tmp_output = output + ".tmp"
  File.open(tmp_output, 'w') do |io|
    io << RewritePlistFile.with_prefix(prefix, output)
  end
  File.delete(output)
  File.rename(tmp_output, output)
end
exit 0