@@ -44,13 +44,20 @@ import libtmux
44
44
required = True ,
45
45
help = "The tmux session name to use." ,
46
46
)
47
+ @click .option (
48
+ "-l" ,
49
+ "--logfile" ,
50
+ type = click .Path (file_okay = True , dir_okay = False ),
51
+ help = "VTD logfile path." ,
52
+ )
47
53
@click .pass_context
48
54
def main (
49
55
ctx ,
50
56
verbose : int ,
51
57
vtd_root : str ,
52
58
runtime_dir : str ,
53
59
tmux_session : str ,
60
+ logfile : str ,
54
61
):
55
62
"""Start and stop a VTD simulation."""
56
63
@@ -63,11 +70,12 @@ def main(
63
70
logging .basicConfig (format = "%(message)s" , stream = sys .stderr , level = level )
64
71
65
72
class Options :
66
- def __init__ (self , root : str , runtime : str , session_name : str ):
73
+ def __init__ (self , root : str , runtime : str , session_name : str , log_file : str ):
67
74
self .root_dir = Path (root )
68
75
self .runtime_dir = Path (runtime )
69
76
self .tmux = libtmux .Server ()
70
77
self .session_name = session_name
78
+ self .log_file = log_file
71
79
72
80
def get_session (self ) -> Optional [libtmux .Session ]:
73
81
return self .tmux .find_where ({"session_name" : self .session_name })
@@ -78,7 +86,7 @@ def main(
78
86
def new_session (self ) -> libtmux .Session :
79
87
return self .tmux .new_session (self .session_name )
80
88
81
- ctx .obj = Options (vtd_root , runtime_dir , tmux_session )
89
+ ctx .obj = Options (vtd_root , runtime_dir , tmux_session , logfile )
82
90
83
91
84
92
# _________________________________________________________________________
@@ -247,6 +255,9 @@ def start(
247
255
pane = window .attached_pane
248
256
pane .clear ()
249
257
258
+ if opt .log_file :
259
+ log_file = shlex .quote (str (opt .log_file ))
260
+ pane .cmd ("pipe" , f"cat >> { log_file } " )
250
261
runtime_dir = shlex .quote (str (opt .runtime_dir ))
251
262
pane .send_keys (f"cd { runtime_dir } " )
252
263
pane .send_keys (f"export VTD_ROOT={ runtime_dir } " )
0 commit comments