@@ -196,12 +196,12 @@ pub struct DockerPaths {
196
196
impl DockerPaths {
197
197
pub fn create (
198
198
engine : & Engine ,
199
- metadata : CargoMetadata ,
199
+ mut metadata : CargoMetadata ,
200
200
cwd : PathBuf ,
201
201
toolchain : QualifiedToolchain ,
202
202
) -> Result < Self > {
203
203
let mount_finder = MountFinder :: create ( engine) ?;
204
- let directories = Directories :: create ( & mount_finder, & metadata, & cwd, toolchain) ?;
204
+ let directories = Directories :: create ( & mount_finder, & mut metadata, & cwd, toolchain) ?;
205
205
Ok ( Self {
206
206
mount_finder,
207
207
metadata,
@@ -261,7 +261,7 @@ pub struct Directories {
261
261
impl Directories {
262
262
pub fn create (
263
263
mount_finder : & MountFinder ,
264
- metadata : & CargoMetadata ,
264
+ metadata : & mut CargoMetadata ,
265
265
cwd : & Path ,
266
266
mut toolchain : QualifiedToolchain ,
267
267
) -> Result < Self > {
@@ -313,7 +313,7 @@ impl Directories {
313
313
314
314
let cargo = mount_finder. find_mount_path ( cargo) ;
315
315
let xargo = mount_finder. find_mount_path ( xargo) ;
316
- let target = mount_finder. find_mount_path ( target) ;
316
+ metadata . target_directory = mount_finder. find_mount_path ( target) ;
317
317
318
318
// root is either workspace_root, or, if we're outside the workspace root, the current directory
319
319
let host_root = mount_finder. find_mount_path ( if metadata. workspace_root . starts_with ( cwd) {
@@ -335,7 +335,7 @@ impl Directories {
335
335
Ok ( Directories {
336
336
cargo,
337
337
xargo,
338
- target,
338
+ target : metadata . target_directory . clone ( ) ,
339
339
nix_store,
340
340
host_root,
341
341
mount_root,
@@ -423,11 +423,11 @@ pub fn get_package_info(
423
423
toolchain : QualifiedToolchain ,
424
424
msg_info : & mut MessageInfo ,
425
425
) -> Result < ( CargoMetadata , Directories ) > {
426
- let metadata = cargo_metadata_with_args ( None , None , msg_info) ?
426
+ let mut metadata = cargo_metadata_with_args ( None , None , msg_info) ?
427
427
. ok_or ( eyre:: eyre!( "unable to get project metadata" ) ) ?;
428
428
let mount_finder = MountFinder :: create ( engine) ?;
429
429
let cwd = std:: env:: current_dir ( ) ?;
430
- let dirs = Directories :: create ( & mount_finder, & metadata, & cwd, toolchain) ?;
430
+ let dirs = Directories :: create ( & mount_finder, & mut metadata, & cwd, toolchain) ?;
431
431
432
432
Ok ( ( metadata, dirs) )
433
433
}
@@ -1114,7 +1114,7 @@ mod tests {
1114
1114
}
1115
1115
1116
1116
fn get_directories (
1117
- metadata : & CargoMetadata ,
1117
+ metadata : & mut CargoMetadata ,
1118
1118
mount_finder : & MountFinder ,
1119
1119
) -> Result < Directories > {
1120
1120
let cwd = get_cwd ( ) ?;
@@ -1133,8 +1133,8 @@ mod tests {
1133
1133
fn test_host ( ) -> Result < ( ) > {
1134
1134
let vars = unset_env ( ) ;
1135
1135
let mount_finder = MountFinder :: new ( vec ! [ ] ) ;
1136
- let metadata = cargo_metadata ( false , & mut MessageInfo :: default ( ) ) ?;
1137
- let directories = get_directories ( & metadata, & mount_finder) ?;
1136
+ let mut metadata = cargo_metadata ( false , & mut MessageInfo :: default ( ) ) ?;
1137
+ let directories = get_directories ( & mut metadata, & mount_finder) ?;
1138
1138
paths_equal ( & directories. cargo , & home ( ) ?. join ( ".cargo" ) ) ?;
1139
1139
paths_equal ( & directories. xargo , & home ( ) ?. join ( ".xargo" ) ) ?;
1140
1140
paths_equal ( & directories. host_root , & metadata. workspace_root ) ?;
@@ -1178,8 +1178,8 @@ mod tests {
1178
1178
}
1179
1179
1180
1180
let mount_finder = MountFinder :: create ( & engine) ?;
1181
- let metadata = cargo_metadata ( true , & mut msg_info) ?;
1182
- let directories = get_directories ( & metadata, & mount_finder) ?;
1181
+ let mut metadata = cargo_metadata ( true , & mut msg_info) ?;
1182
+ let directories = get_directories ( & mut metadata, & mount_finder) ?;
1183
1183
let mount_finder = MountFinder :: new ( docker_read_mount_paths ( & engine) ?) ;
1184
1184
let mount_path = |p| mount_finder. find_mount_path ( p) ;
1185
1185
0 commit comments