@ -8,6 +8,7 @@ import signal
import shutil
import subprocess
import datetime
import textwrap
from selfdrive . swaglog import cloudlog , add_logentries_handler
from common . basedir import BASEDIR , PARAMS
@ -66,9 +67,13 @@ def unblock_stdout():
if __name__ == " __main__ " :
unblock_stdout ( )
if __name__ == " __main__ " and ANDROID :
from common . spinner import Spinner
from common . text_window import TextWindow
else :
from common . spinner import FakeSpinner as Spinner
from common . text_window import FakeTextWindow as TextWindow
import importlib
import traceback
@ -126,11 +131,15 @@ if not prebuilt:
# Build failed log errors
errors = [ line . decode ( ' utf8 ' , ' replace ' ) for line in compile_output
if any ( [ err in line for err in [ b ' error: ' , b ' not found, needed by target ' ] ] ) ]
errors = " \n " . join ( errors )
error_ s = " \n " . join ( errors )
add_logentries_handler ( cloudlog )
cloudlog . error ( " scons build failed \n " + errors )
cloudlog . error ( " scons build failed \n " + error_s )
# Show TextWindow
error_s = " \n \n " . join ( [ " \n " . join ( textwrap . wrap ( e , 65 ) ) for e in errors ] )
with TextWindow ( " Openpilot failed to build \n \n " + error_s ) as t :
t . wait_for_exit ( )
# TODO: Show errors in TextWindow
exit ( 1 )
else :
break
@ -589,8 +598,13 @@ if __name__ == "__main__":
except Exception :
add_logentries_handler ( cloudlog )
cloudlog . exception ( " Manager failed to start " )
# TODO: Show exception using TextWindow
# error = traceback.format_exc()
# Show last 3 lines of traceback
error = traceback . format_exc ( 3 )
error = " Manager failed to start \n \n " + error
with TextWindow ( error ) as t :
t . wait_for_exit ( )
raise