1
1
use super :: clobber_registry:: ClobberRegistry ;
2
- use super :: unlink:: recursively_remove_empty_directories;
2
+ use super :: unlink:: { recursively_remove_empty_directories, UnlinkError } ;
3
3
use super :: { InstallError , Transaction } ;
4
4
use futures:: stream:: FuturesUnordered ;
5
5
use futures:: { FutureExt , StreamExt } ;
@@ -166,7 +166,10 @@ impl InstallDriver {
166
166
let required_packages =
167
167
PackageRecord :: sort_topologically ( prefix_records. iter ( ) . collect :: < Vec < _ > > ( ) ) ;
168
168
169
- self . remove_empty_directories ( transaction, & prefix_records, target_prefix) ?;
169
+ self . remove_empty_directories ( transaction, & prefix_records, target_prefix)
170
+ . unwrap_or_else ( |e| {
171
+ tracing:: warn!( "Failed to remove empty directories: {} (ignored)" , e) ;
172
+ } ) ;
170
173
171
174
self . clobber_registry ( )
172
175
. unclobber ( & required_packages, target_prefix)
@@ -181,7 +184,7 @@ impl InstallDriver {
181
184
transaction : & Transaction < PrefixRecord , RepoDataRecord > ,
182
185
new_prefix_records : & [ PrefixRecord ] ,
183
186
target_prefix : & Path ,
184
- ) -> Result < ( ) , InstallError > {
187
+ ) -> Result < ( ) , UnlinkError > {
185
188
let mut keep_directories = HashSet :: new ( ) ;
186
189
187
190
// find all forced directories in the prefix records
@@ -218,8 +221,7 @@ impl InstallDriver {
218
221
target_prefix,
219
222
is_python_noarch,
220
223
& keep_directories,
221
- )
222
- . unwrap ( ) ;
224
+ ) ?;
223
225
224
226
// The directory is not empty which means our parent directory is also not empty,
225
227
// recursively remove the parent directory from the set as well.
0 commit comments