File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -97,25 +97,22 @@ where
9797 for dir in dest. read_dir ( ) ? {
9898 let path = dir?. path ( ) ;
9999 if let Err ( err) = chmod_dirs ( & path, |mode| mode | 0o700 ) {
100- log :: error !(
100+ bail ! (
101101 "could not fix permissions for {}: {}" ,
102102 path. display( ) ,
103103 err
104104 ) ;
105- bail ! ( err) ;
106105 }
107106 if path. is_dir ( ) {
108107 if let Err ( err) = fs:: remove_dir_all ( & path) {
109- log:: error!( "could not remove {}: {}" , path. display( ) , err) ;
110- bail ! ( err) ;
108+ bail ! ( "could not remove {}: {}" , path. display( ) , err) ;
111109 }
112110 } else if let Err ( err) = fs:: remove_file ( & path) {
113- log:: error!( "could not remove {}: {}" , path. display( ) , err) ;
114- bail ! ( err) ;
111+ bail ! ( "could not remove {}: {}" , path. display( ) , err) ;
115112 }
116113 }
117- } else {
118- fs :: create_dir_all ( dest) . unwrap ( ) ;
114+ } else if let Err ( err ) = fs :: create_dir_all ( dest ) {
115+ bail ! ( "could not create {}: {}" , dest. display ( ) , err ) ;
119116 }
120117
121118 log:: info!( "unpacking base image into {}" , dest. display( ) ) ;
Original file line number Diff line number Diff line change @@ -50,21 +50,33 @@ fn get_lead_pid(container_id: &str) -> Option<i32> {
5050 . or_else ( || pid_lookup ( container_id) )
5151}
5252
53+ fn base_state_dir ( ) -> PathBuf {
54+ let cfg_state_dir = option_env ! ( "CONFIG_STATE_DIR" ) ;
55+ if std:: env:: var_os ( "XDG_STATE_HOME" ) . is_none ( ) {
56+ cfg_state_dir
57+ . map ( PathBuf :: from)
58+ . or ( dirs:: state_dir ( ) )
59+ . unwrap ( )
60+ } else {
61+ dirs:: state_dir ( ) . unwrap ( )
62+ }
63+ }
64+
5365fn get_img_dir ( args : & Args ) -> PathBuf {
5466 if let Ok ( img_dir) = std:: env:: var ( ENV_IMG_DIR ) {
5567 return PathBuf :: from ( img_dir) ;
5668 }
5769 if args. img_dir . is_some ( ) {
5870 return PathBuf :: from ( args. img_dir . clone ( ) . unwrap ( ) ) ;
5971 }
60- dirs :: state_dir ( ) . unwrap ( ) . join ( APP_NAME ) . join ( IMG_DIR )
72+ base_state_dir ( ) . join ( APP_NAME ) . join ( IMG_DIR )
6173}
6274
6375fn get_state_dir ( ) -> PathBuf {
6476 if let Ok ( ovl_dir) = std:: env:: var ( ENV_STATE_DIR ) {
6577 return PathBuf :: from ( ovl_dir) ;
6678 }
67- dirs :: state_dir ( ) . unwrap ( ) . join ( APP_NAME )
79+ base_state_dir ( ) . join ( APP_NAME )
6880}
6981
7082fn init_logging ( ) {
You can’t perform that action at this time.
0 commit comments