#!/usr/bin/env python3
import os
import sys
from selfdrive . test . openpilotci import upload_file
from selfdrive . test . process_replay . compare_logs import save_log
from selfdrive . test . process_replay . test_processes import segments , get_segment
from selfdrive . version import get_git_commit
from tools . lib . logreader import LogReader
from selfdrive . test . process_replay . inject_model import inject_model
if __name__ == " __main__ " :
no_upload = " --no-upload " in sys . argv
process_replay_dir = os . path . dirname ( os . path . abspath ( __file__ ) )
ref_commit_fn = os . path . join ( process_replay_dir , " model_ref_commit " )
ref_commit = get_git_commit ( )
if ref_commit is None :
raise Exception ( " couldn ' t get ref commit " )
with open ( ref_commit_fn , " w " ) as f :
f . write ( ref_commit )
for car_brand , segment in segments :
rlog_fn = get_segment ( segment , original = True )
if rlog_fn is None :
print ( " failed to get segment %s " % segment )
sys . exit ( 1 )
lr = LogReader ( rlog_fn )
print ( ' injecting model into % s ' % segment )
lr = inject_model ( lr , segment )
route_name , segment_num = segment . rsplit ( " -- " , 1 )
log_fn = " %s / %s /rlog_ %s .bz2 " % ( route_name . replace ( " | " , " / " ) , segment_num , ref_commit )
tmp_name = ' tmp_ %s _ %s ' % ( route_name , segment_num )
save_log ( tmp_name , lr )
if not no_upload :
upload_file ( tmp_name , log_fn )
print ( ' uploaded %s ' , log_fn )
os . remove ( tmp_name )
os . remove ( rlog_fn )
print ( " done " )