1
+
1
2
#[ cfg( target_family = "unix" ) ]
2
3
use std:: path:: PathBuf ;
3
4
use std:: time:: Duration ;
@@ -8,6 +9,8 @@ use std::{
8
9
process:: { Child , Command , Stdio } ,
9
10
} ;
10
11
12
+ #[ cfg( target_family = "unix" ) ]
13
+ use log:: error;
11
14
use log:: { debug, info} ;
12
15
use serde:: Serialize ;
13
16
use tokio:: time:: interval;
@@ -70,8 +73,19 @@ pub fn set_permissions(dir_path: &PathBuf) -> Result<(), WorkerError> {
70
73
debug ! ( "GPG temp folder set to {0}" , dir_string) ;
71
74
use std:: os:: unix:: prelude:: PermissionsExt ;
72
75
let permissions = fs:: Permissions :: from_mode ( 0o700 ) ;
73
- fs:: set_permissions ( dir_path, permissions) ?;
74
- debug ! ( "Permissions set" ) ;
76
+ match fs:: set_permissions ( dir_path, permissions) {
77
+ Ok ( _) => {
78
+ debug ! ( "Permissions set" ) ;
79
+ }
80
+ Err ( e) => {
81
+ error ! (
82
+ "Failed to set permissions for GPG TEMP Home! \
83
+ Location: {dir_string} \n \
84
+ Error: {0}\n Program will proceed with default permissions.",
85
+ e. to_string( )
86
+ ) ;
87
+ }
88
+ }
75
89
Ok ( ( ) )
76
90
}
77
91
@@ -83,7 +97,10 @@ pub fn init_gpg(config: &Config) -> Result<(String, Child), WorkerError> {
83
97
84
98
#[ cfg( target_family = "unix" ) ]
85
99
if !config. skip_gpg_permissions {
86
- set_permissions ( & temp_path) ?;
100
+ // ignore permissions error, just warn the user and proceed. Default permissions still allow for provisioning to work.
101
+ if let Err ( e) = set_permissions ( & temp_path) {
102
+ error ! ( "Failed to set permissions! \n Error: {}" , e. to_string( ) ) ;
103
+ }
87
104
}
88
105
89
106
let temp_path_str = temp_path. to_str ( ) . ok_or ( WorkerError :: Gpg ) ?;
0 commit comments