10
10
import requests
11
11
from simple_term_menu import TerminalMenu # type: ignore
12
12
13
- from . import logs
14
13
from . import swatbuild
15
14
from . import utils
16
15
from .webrequests import Session
@@ -32,9 +31,10 @@ def show_logs_menu(build: swatbuild.Build):
32
31
"""Show a menu allowing to select log file to analyze."""
33
32
def get_failure_line (failure , logname ):
34
33
return (failure .id , failure .stepnumber , failure .stepname , logname )
35
- entries = [get_failure_line (failure , url )
36
- for failure in build .failures .values ()
37
- for url in failure .urls ]
34
+ logs = [(failure , logname )
35
+ for failure in build .failures .values ()
36
+ for logname in failure .urls ]
37
+ entries = [get_failure_line (failure , logname ) for failure , logname in logs ]
38
38
default_line = get_failure_line (build .get_first_failure (), 'stdio' )
39
39
entry = entries .index (default_line )
40
40
logs_menu = utils .tabulated_menu (entries , title = "Log files" ,
@@ -45,7 +45,7 @@ def get_failure_line(failure, logname):
45
45
if newentry is None :
46
46
break
47
47
48
- show_log_menu (build . id , entries [newentry ][ 1 ], entries [ newentry ][ 3 ])
48
+ show_log_menu (* logs [newentry ])
49
49
50
50
51
51
def _format_log_line (linenum : int , text : str , colorized_line : Optional [int ],
@@ -124,9 +124,9 @@ def _show_log(loglines: list[str], selected_line: Optional[int],
124
124
utils .show_in_less ("\n " .join (colorlines ), startline )
125
125
126
126
127
- def _load_log (buildid : int , stepnumber : int , logname : str
127
+ def _load_log (failure : swatbuild . Failure , logname : str
128
128
) -> Optional [str ]:
129
- logurl = logs .get_log_raw_url (buildid , stepnumber , logname )
129
+ logurl = failure .get_log_raw_url (logname )
130
130
if not logurl :
131
131
logging .error ("Failed to find log" )
132
132
return None
@@ -140,9 +140,9 @@ def _load_log(buildid: int, stepnumber: int, logname: str
140
140
return logdata
141
141
142
142
143
- def show_log_menu (buildid : int , stepnumber : int , logname : str ):
143
+ def show_log_menu (failure : swatbuild . Failure , logname : str ):
144
144
"""Analyze a failure log file."""
145
- logdata = _load_log (buildid , stepnumber , logname )
145
+ logdata = _load_log (failure , logname )
146
146
if not logdata :
147
147
return
148
148
@@ -163,7 +163,8 @@ def preview(line):
163
163
return _format_log_preview (int (line ), loglines , highlight_lines ,
164
164
preview_height )
165
165
166
- title = f"Log file: { logname } of build { buildid } , step { stepnumber } "
166
+ title = f"Log file: { logname } of build { failure .build .id } , " \
167
+ f"step { failure .stepnumber } "
167
168
entry = 2
168
169
while True :
169
170
menu = TerminalMenu (entries , title = title , cursor_index = entry ,
0 commit comments