diff --git a/lib/pygments/popen.rb b/lib/pygments/popen.rb index 9598ebfc..d1429002 100644 --- a/lib/pygments/popen.rb +++ b/lib/pygments/popen.rb @@ -255,6 +255,8 @@ def mentos(method, args=[], kwargs={}, original_code=nil) # mentos is now waiting for the header, and, potentially, code. write_data(out_header, code) + check_for_error + # mentos will now return data to us. First it sends the header. header = get_header @@ -275,6 +277,16 @@ def mentos(method, args=[], kwargs={}, original_code=nil) raise MentosError, "EPIPE" end + def check_for_error + error_msg = @err.read + + unless error_msg.empty? + @log.error "[#{Time.now.iso8601}] Error running python script: #{error_msg}" + stop "Error running python script: #{error_msg}" + raise MentosError, error_msg + end + end + # Based on the header we receive, determine if we need # to read more bytes, and read those bytes if necessary.