Skip to content

Commit 06e8f2c

Browse files
committed
fix target path when in container
1 parent 4dc5b55 commit 06e8f2c

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

.changes/994.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "fixed",
3+
"description": "fixed wrong path used for target when pre-building in container in container mode",
4+
"issues": [993]
5+
}

src/docker/shared.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,12 @@ pub struct DockerPaths {
196196
impl 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 {
261261
impl 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

Comments
 (0)