@@ -35,18 +35,19 @@ mod status_component;
3535mod task;
3636mod value;
3737mod window;
38+ mod paths;
3839
3940use crate :: dap_client:: DapClient ;
4041use component:: Component ;
41- use core:: { caller_process_pid, Core , CODETRACER_TMP_PATH } ;
42+ use core:: { caller_process_pid, Core } ;
4243use editor_component:: EditorComponent ;
4344use event:: { CtEvent , Event } ;
4445use lang:: Lang ;
4546use panel:: { coord, panel, size} ;
46- use serde_json:: Value ;
4747use state_component:: StateComponent ;
4848use status_component:: StatusComponent ;
4949use task:: { Action , EventId , EventKind , FlowUpdate , Location , MoveState , StepArg , TaskKind } ;
50+ use paths:: CODETRACER_PATHS ;
5051
5152#[ derive( Debug , Default ) ]
5253pub struct Trace {
@@ -99,9 +100,6 @@ impl Default for App {
99100 }
100101}
101102
102- const CT_SOCKET_PATH : & str = "/tmp/ct_socket" ;
103- const CT_CLIENT_SOCKET_PATH : & str = "/tmp/ct_client_socket" ;
104-
105103const EDITOR_COMPONENT : usize = 0 ;
106104
107105impl App {
@@ -274,8 +272,18 @@ impl App {
274272 fn process_incoming_messages ( & mut self ) { }
275273
276274 fn start_core ( & mut self ) -> Result < ( ) , Box < dyn Error > > {
277- let last_start_pid_path = format ! ( "{CODETRACER_TMP_PATH}/last-start-pid" ) ;
278- let _ = std:: fs:: create_dir ( CODETRACER_TMP_PATH ) ;
275+ let tmp_path: PathBuf ;
276+ let socket_path_tmp: PathBuf ;
277+ {
278+ let paths = CODETRACER_PATHS . lock ( ) ?;
279+ tmp_path = paths. tmp_path . clone ( ) ;
280+ socket_path_tmp = paths. socket_path . clone ( ) ;
281+ }
282+
283+ let tmp_socket_path_str = socket_path_tmp. display ( ) ;
284+
285+ let last_start_pid_path = format ! ( "{tmp_socket_path_str}/last-start-pid" ) ;
286+ let _ = std:: fs:: create_dir ( tmp_path) ;
279287 std:: fs:: write (
280288 last_start_pid_path,
281289 format ! ( "{}\n " , self . caller_process_pid) ,
@@ -286,13 +294,9 @@ impl App {
286294 env:: set_var ( "CODETRACER_DISPATCHER_READ_CLIENT" , "STDIN" ) ;
287295 env:: set_var ( "CODETRACER_DISPATCHER_SEND_CLIENT" , "FILE" ) ;
288296
289- // https://stackoverflow.com/a/73224567/438099
290- // let file = std::fs::File::create("/tmp/codetracer/out.txt").unwrap();
291- // let file_out_stdio = Stdio::from(file);
292-
293297 let caller_pid = self . caller_process_pid ;
294298
295- let socket_path = format ! ( "{CT_SOCKET_PATH }_{caller_pid}" ) ;
299+ let socket_path = format ! ( "{tmp_socket_path_str }_{caller_pid}" ) ;
296300 eprintln ! ( "{socket_path:?}" ) ;
297301 let socket = UnixStream :: connect ( & socket_path) ?;
298302 eprintln ! ( "{socket:?}" ) ;
@@ -648,7 +652,11 @@ mod tests {
648652
649653 #[ test]
650654 fn register_trace_in_db ( ) {
651- let base = env:: temp_dir ( ) . join ( "ct_tui_test_db" ) ;
655+ let tmp_path =
656+ {
657+ CODETRACER_PATHS . lock ( ) ?. tmp_path . clone ( )
658+ } ;
659+ let base = tmp_path. join ( "ct_tui_test_db" ) ;
652660 let _ = fs:: remove_dir_all ( & base) ;
653661 fs:: create_dir_all ( & base) . unwrap ( ) ;
654662 let temp_home = base. join ( "home" ) ;
0 commit comments