1
1
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
2
2
#![ cfg_attr( not( debug_assertions) , windows_subsystem = "windows" ) ]
3
3
4
+ use tauri:: api:: dialog:: message;
4
5
use tauri:: { generate_context, generate_handler} ;
5
6
6
7
mod page;
@@ -10,9 +11,7 @@ mod extension;
10
11
mod splashscreen;
11
12
12
13
use std:: process:: Command ;
13
- use std:: sync:: Arc ;
14
14
use tauri:: Manager ;
15
- use std:: sync:: Mutex ;
16
15
use splashscreen:: close_init;
17
16
use page:: file:: * ;
18
17
use page:: terimal:: { pwd_tauri, whoami_tauri, run_command} ;
@@ -30,34 +29,36 @@ fn main() {
30
29
Command :: new ( "../target/release/tiks" ) . status ( ) . expect ( "Failed run" ) ;
31
30
}
32
31
33
- let python_server = Command :: new ( "python" )
32
+ let _python_server = Command :: new ( "python" )
34
33
. arg ( "../py/server.py" )
35
34
. spawn ( )
36
35
. expect ( "Failed to start Python server" ) ;
37
36
38
- // Use Arc and Mutex to share the Python server process between threads
39
- let python_server = Arc :: new ( Mutex :: new ( python_server) ) ;
40
-
41
37
42
38
tauri:: Builder :: default ( )
43
39
. setup ( {
44
- let python_server = Arc :: clone ( & python_server) ;
45
40
move |app| {
46
- let main_window = app. get_window ( "main" ) . unwrap ( ) ;
47
- main_window. on_window_event ( {
48
- let python_server = Arc :: clone ( & python_server) ;
49
- move |event| {
50
- if let tauri:: WindowEvent :: CloseRequested { api, .. } = event {
51
- let mut server = python_server. lock ( ) . unwrap ( ) ;
52
- server. kill ( ) . expect ( "Failed to kill Python server" ) ;
53
- api. prevent_close ( ) ;
54
- }
41
+ let main_window = app. get_window ( "main" ) . unwrap ( ) ;
42
+
43
+ // 添加更新检查逻辑
44
+ let app_handle = app. handle ( ) . clone ( ) ;
45
+ tauri:: async_runtime:: spawn ( async move {
46
+ match app_handle. updater ( ) . check ( ) . await {
47
+ Ok ( update) => {
48
+ if update. is_update_available ( ) {
49
+ message ( Some ( & main_window) , "Update Available" , "A new version is available. It will be installed when you restart the application." ) ;
50
+ update. download_and_install ( ) . await . unwrap ( ) ;
55
51
}
56
- } ) ;
57
- Ok ( ( ) )
52
+ } ,
53
+ Err ( e) => {
54
+ eprintln ! ( "Failed to check for updates: {}" , e) ;
55
+ }
56
+ }
57
+ } ) ;
58
+ Ok ( ( ) )
58
59
}
59
60
} )
60
61
. invoke_handler ( generate_handler ! [ open_setting, open_new_window, read_directory, read_file, whoami_tauri, pwd_tauri, run_command, close_init, open_workspace, read_workspace_config, write_workspace_config, get_file_language, write_file, get_all_file, get_files_with_pattern, find_file, create_dir, create_file] )
61
- . run ( generate_context ! ( ) )
62
+ . run ( generate_context ! ( "./tauri.conf.json" ) )
62
63
. expect ( "error while running tauri application" ) ;
63
64
}
0 commit comments