@@ -196,12 +196,12 @@ pub struct DockerPaths {
196196impl DockerPaths {
197197 pub fn create (
198198 engine : & Engine ,
199- metadata : CargoMetadata ,
199+ mut metadata : CargoMetadata ,
200200 cwd : PathBuf ,
201201 toolchain : QualifiedToolchain ,
202202 ) -> Result < Self > {
203203 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) ?;
205205 Ok ( Self {
206206 mount_finder,
207207 metadata,
@@ -261,7 +261,7 @@ pub struct Directories {
261261impl Directories {
262262 pub fn create (
263263 mount_finder : & MountFinder ,
264- metadata : & CargoMetadata ,
264+ metadata : & mut CargoMetadata ,
265265 cwd : & Path ,
266266 mut toolchain : QualifiedToolchain ,
267267 ) -> Result < Self > {
@@ -313,7 +313,7 @@ impl Directories {
313313
314314 let cargo = mount_finder. find_mount_path ( cargo) ;
315315 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) ;
317317
318318 // root is either workspace_root, or, if we're outside the workspace root, the current directory
319319 let host_root = mount_finder. find_mount_path ( if metadata. workspace_root . starts_with ( cwd) {
@@ -335,7 +335,7 @@ impl Directories {
335335 Ok ( Directories {
336336 cargo,
337337 xargo,
338- target,
338+ target : metadata . target_directory . clone ( ) ,
339339 nix_store,
340340 host_root,
341341 mount_root,
@@ -423,11 +423,11 @@ pub fn get_package_info(
423423 toolchain : QualifiedToolchain ,
424424 msg_info : & mut MessageInfo ,
425425) -> 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) ?
427427 . ok_or ( eyre:: eyre!( "unable to get project metadata" ) ) ?;
428428 let mount_finder = MountFinder :: create ( engine) ?;
429429 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) ?;
431431
432432 Ok ( ( metadata, dirs) )
433433}
@@ -1114,7 +1114,7 @@ mod tests {
11141114 }
11151115
11161116 fn get_directories (
1117- metadata : & CargoMetadata ,
1117+ metadata : & mut CargoMetadata ,
11181118 mount_finder : & MountFinder ,
11191119 ) -> Result < Directories > {
11201120 let cwd = get_cwd ( ) ?;
@@ -1133,8 +1133,8 @@ mod tests {
11331133 fn test_host ( ) -> Result < ( ) > {
11341134 let vars = unset_env ( ) ;
11351135 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) ?;
11381138 paths_equal ( & directories. cargo , & home ( ) ?. join ( ".cargo" ) ) ?;
11391139 paths_equal ( & directories. xargo , & home ( ) ?. join ( ".xargo" ) ) ?;
11401140 paths_equal ( & directories. host_root , & metadata. workspace_root ) ?;
@@ -1178,8 +1178,8 @@ mod tests {
11781178 }
11791179
11801180 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) ?;
11831183 let mount_finder = MountFinder :: new ( docker_read_mount_paths ( & engine) ?) ;
11841184 let mount_path = |p| mount_finder. find_mount_path ( p) ;
11851185
0 commit comments