@@ -18,6 +18,8 @@ use std::ffi::OsStr;
18
18
use base64:: Engine ;
19
19
use futures_util:: StreamExt ;
20
20
use http:: HeaderName ;
21
+ #[ cfg( not( feature = "tracing" ) ) ]
22
+ use log as logger;
21
23
use minisign_verify:: { PublicKey , Signature } ;
22
24
use percent_encoding:: { AsciiSet , CONTROLS } ;
23
25
use reqwest:: {
@@ -28,6 +30,8 @@ use semver::Version;
28
30
use serde:: { de:: Error as DeError , Deserialize , Deserializer , Serialize } ;
29
31
use tauri:: { utils:: platform:: current_exe, AppHandle , Resource , Runtime } ;
30
32
use time:: OffsetDateTime ;
33
+ #[ cfg( feature = "tracing" ) ]
34
+ use tracing as logger;
31
35
use url:: Url ;
32
36
33
37
use crate :: {
@@ -387,14 +391,14 @@ impl Updater {
387
391
. replace ( "{{arch}}" , self . arch )
388
392
. parse ( ) ?;
389
393
390
- tracing :: debug!( "checking for updates {url}" ) ;
394
+ logger :: debug!( "checking for updates {url}" ) ;
391
395
392
396
let mut request = ClientBuilder :: new ( ) . user_agent ( UPDATER_USER_AGENT ) ;
393
397
if let Some ( timeout) = self . timeout {
394
398
request = request. timeout ( timeout) ;
395
399
}
396
400
if let Some ( ref proxy) = self . proxy {
397
- tracing :: debug!( "using proxy {proxy}" ) ;
401
+ logger :: debug!( "using proxy {proxy}" ) ;
398
402
let proxy = reqwest:: Proxy :: all ( proxy. as_str ( ) ) ?;
399
403
request = request. proxy ( proxy) ;
400
404
}
@@ -415,36 +419,36 @@ impl Updater {
415
419
if res. status ( ) . is_success ( ) {
416
420
// no updates found!
417
421
if StatusCode :: NO_CONTENT == res. status ( ) {
418
- tracing :: debug!( "update endpoint returned 204 No Content" ) ;
422
+ logger :: debug!( "update endpoint returned 204 No Content" ) ;
419
423
return Ok ( None ) ;
420
424
} ;
421
425
422
426
let update_response: serde_json:: Value = res. json ( ) . await ?;
423
- tracing :: debug!( "update response: {update_response:?}" ) ;
427
+ logger :: debug!( "update response: {update_response:?}" ) ;
424
428
raw_json = Some ( update_response. clone ( ) ) ;
425
429
match serde_json:: from_value :: < RemoteRelease > ( update_response)
426
430
. map_err ( Into :: into)
427
431
{
428
432
Ok ( release) => {
429
- tracing :: debug!( "parsed release response {release:?}" ) ;
433
+ logger :: debug!( "parsed release response {release:?}" ) ;
430
434
last_error = None ;
431
435
remote_release = Some ( release) ;
432
436
// we found a release, break the loop
433
437
break ;
434
438
}
435
439
Err ( err) => {
436
- tracing :: error!( "failed to deserialize update response: {err}" ) ;
440
+ logger :: error!( "failed to deserialize update response: {err}" ) ;
437
441
last_error = Some ( err)
438
442
}
439
443
}
440
444
} else {
441
- tracing :: error!(
445
+ logger :: error!(
442
446
"update endpoint did not respond with a successful status code"
443
447
) ;
444
448
}
445
449
}
446
450
Err ( err) => {
447
- tracing :: error!( "failed to check for updates: {err}" ) ;
451
+ logger :: error!( "failed to check for updates: {err}" ) ;
448
452
last_error = Some ( err. into ( ) )
449
453
}
450
454
}
@@ -713,7 +717,7 @@ impl Update {
713
717
} ;
714
718
715
719
if let Some ( on_before_exit) = self . on_before_exit . as_ref ( ) {
716
- tracing :: debug!( "running on_before_exit hook" ) ;
720
+ logger :: debug!( "running on_before_exit hook" ) ;
717
721
on_before_exit ( ) ;
718
722
}
719
723
@@ -882,7 +886,7 @@ impl Update {
882
886
883
887
#[ cfg( feature = "zip" ) ]
884
888
if infer:: archive:: is_gz ( bytes) {
885
- tracing :: debug!( "extracting AppImage" ) ;
889
+ logger :: debug!( "extracting AppImage" ) ;
886
890
// extract the buffer to the tmp_dir
887
891
// we extract our signed archive into our final directory without any temp file
888
892
let archive = Cursor :: new ( bytes) ;
@@ -906,7 +910,7 @@ impl Update {
906
910
return Err ( Error :: BinaryNotFoundInArchive ) ;
907
911
}
908
912
909
- tracing :: debug!( "rewriting AppImage" ) ;
913
+ logger :: debug!( "rewriting AppImage" ) ;
910
914
return match std:: fs:: write ( & self . extract_path , bytes)
911
915
. and_then ( |_| std:: fs:: set_permissions ( & self . extract_path , permissions) )
912
916
{
@@ -960,7 +964,7 @@ impl Update {
960
964
fn install_deb ( & self , bytes : & [ u8 ] ) -> Result < ( ) > {
961
965
// First verify the bytes are actually a .deb package
962
966
if !infer:: archive:: is_deb ( bytes) {
963
- tracing :: warn!( "update is not a valid deb package" ) ;
967
+ logger :: warn!( "update is not a valid deb package" ) ;
964
968
return Err ( Error :: InvalidUpdaterFormat ) ;
965
969
}
966
970
@@ -1003,15 +1007,15 @@ impl Update {
1003
1007
. status ( )
1004
1008
{
1005
1009
if status. success ( ) {
1006
- tracing :: debug!( "installed deb with pkexec" ) ;
1010
+ logger :: debug!( "installed deb with pkexec" ) ;
1007
1011
return Ok ( ( ) ) ;
1008
1012
}
1009
1013
}
1010
1014
1011
1015
// 2. Try zenity or kdialog for a graphical sudo experience
1012
1016
if let Ok ( password) = self . get_password_graphically ( ) {
1013
1017
if self . install_with_sudo ( deb_path, & password) ? {
1014
- tracing :: debug!( "installed deb with GUI sudo" ) ;
1018
+ logger :: debug!( "installed deb with GUI sudo" ) ;
1015
1019
return Ok ( ( ) ) ;
1016
1020
}
1017
1021
}
@@ -1024,7 +1028,7 @@ impl Update {
1024
1028
. status ( ) ?;
1025
1029
1026
1030
if status. success ( ) {
1027
- tracing :: debug!( "installed deb with sudo" ) ;
1031
+ logger :: debug!( "installed deb with sudo" ) ;
1028
1032
Ok ( ( ) )
1029
1033
} else {
1030
1034
Err ( Error :: DebInstallFailed )
@@ -1148,7 +1152,7 @@ impl Update {
1148
1152
} ;
1149
1153
1150
1154
if need_authorization {
1151
- tracing :: debug!( "app installation needs admin privileges" ) ;
1155
+ logger :: debug!( "app installation needs admin privileges" ) ;
1152
1156
// Use AppleScript to perform moves with admin privileges
1153
1157
let apple_script = format ! (
1154
1158
"do shell script \" rm -rf '{src}' && mv -f '{new}' '{src}'\" with administrator privileges" ,
0 commit comments