def self.try_compile_and_run(description, language, source, flags = nil)
extension = detect_language_extension(language)
create_temp_file("passenger-run-check.#{extension}", tmpexedir) do |filename, f|
f.puts(source)
f.close
command = create_compiler_command(language,
"'#{filename}' -o '#{filename}.out'",
flags, true)
if run_compiler(description, command, filename, source)
log("Running #{filename}.out")
begin
output = `'#{filename}.out' 2>&1`
rescue SystemCallError => e
log("Command failed: #{e}")
return false
end
status = $?.exitstatus
log("Command exited with status #{status}. Output:\n--------------\n#{output}\n--------------")
return status == 0
else
return false
end
end
end