Skip to content

Commit 8c43d28

Browse files
committed
Covert container engine functions in Engine methods.
1 parent 836cb9e commit 8c43d28

File tree

7 files changed

+122
-116
lines changed

7 files changed

+122
-116
lines changed

src/bin/commands/containers.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,8 @@ fn get_cross_volumes(
320320
msg_info: &mut MessageInfo,
321321
) -> cross::Result<Vec<String>> {
322322
use cross::docker::VOLUME_PREFIX;
323-
let stdout = docker::subcommand(engine, "volume")
323+
let stdout = engine
324+
.subcommand("volume")
324325
.arg("list")
325326
.args(["--format", "{{.Name}}"])
326327
// handles simple regex: ^ for start of line.
@@ -348,7 +349,7 @@ pub fn remove_all_volumes(
348349
) -> cross::Result<()> {
349350
let volumes = get_cross_volumes(engine, msg_info)?;
350351

351-
let mut command = docker::subcommand(engine, "volume");
352+
let mut command = engine.subcommand("volume");
352353
command.arg("rm");
353354
if force {
354355
command.arg("--force");
@@ -370,7 +371,7 @@ pub fn prune_volumes(
370371
engine: &docker::Engine,
371372
msg_info: &mut MessageInfo,
372373
) -> cross::Result<()> {
373-
let mut command = docker::subcommand(engine, "volume");
374+
let mut command = engine.subcommand("volume");
374375
command.args(["prune", "--force"]);
375376
if execute {
376377
command.run(msg_info, false).map_err(Into::into)
@@ -421,7 +422,7 @@ pub fn create_persistent_volume(
421422

422423
// create a dummy running container to copy data over
423424
let mount_prefix = docker::MOUNT_PREFIX;
424-
let mut docker = docker::subcommand(engine, "run");
425+
let mut docker = engine.subcommand("run");
425426
docker.args(["--name", &container_id]);
426427
docker.arg("--rm");
427428
docker.args(["-v", &format!("{}:{}", volume_id, mount_prefix)]);
@@ -482,7 +483,8 @@ fn get_cross_containers(
482483
msg_info: &mut MessageInfo,
483484
) -> cross::Result<Vec<String>> {
484485
use cross::docker::VOLUME_PREFIX;
485-
let stdout = docker::subcommand(engine, "ps")
486+
let stdout = engine
487+
.subcommand("ps")
486488
.arg("-a")
487489
.args(["--format", "{{.Names}}: {{.State}}"])
488490
// handles simple regex: ^ for start of line.
@@ -525,13 +527,13 @@ pub fn remove_all_containers(
525527

526528
let mut commands = vec![];
527529
if !running.is_empty() {
528-
let mut stop = docker::subcommand(engine, "stop");
530+
let mut stop = engine.subcommand("stop");
529531
stop.args(&running);
530532
commands.push(stop);
531533
}
532534

533535
if !(stopped.is_empty() && running.is_empty()) {
534-
let mut rm = docker::subcommand(engine, "rm");
536+
let mut rm = engine.subcommand("rm");
535537
if force {
536538
rm.arg("--force");
537539
}

src/bin/commands/images.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,8 @@ fn get_cross_images(
166166
msg_info: &mut MessageInfo,
167167
local: bool,
168168
) -> cross::Result<Vec<Image>> {
169-
let mut images: BTreeSet<_> = cross::docker::subcommand(engine, "images")
169+
let mut images: BTreeSet<_> = engine
170+
.subcommand("images")
170171
.args(["--format", "{{.Repository}}:{{.Tag}} {{.ID}}"])
171172
.args([
172173
"--filter",
@@ -177,7 +178,8 @@ fn get_cross_images(
177178
.map(parse_image)
178179
.collect();
179180

180-
let stdout = cross::docker::subcommand(engine, "images")
181+
let stdout = engine
182+
.subcommand("images")
181183
.args(["--format", "{{.Repository}}:{{.Tag}} {{.ID}}"])
182184
.run_and_get_stdout(msg_info)?;
183185
let ids: Vec<_> = images.iter().map(|i| i.id.to_string()).collect();
@@ -238,7 +240,7 @@ fn get_image_target(
238240
return Ok(target);
239241
}
240242
}
241-
let mut command = cross::docker::subcommand(engine, "inspect");
243+
let mut command = engine.subcommand("inspect");
242244
command.args([
243245
"--format",
244246
&format!(
@@ -332,7 +334,7 @@ fn remove_images(
332334
force: bool,
333335
execute: bool,
334336
) -> cross::Result<()> {
335-
let mut command = docker::subcommand(engine, "rmi");
337+
let mut command = engine.subcommand("rmi");
336338
if force {
337339
command.arg("--force");
338340
}

src/docker/custom.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::shell::MessageInfo;
77
use crate::{errors::*, file, CommandExt, ToUtf8};
88
use crate::{CargoMetadata, TargetTriple};
99

10-
use super::{get_image_name, parse_docker_opts, path_hash, ImagePlatform};
10+
use super::{get_image_name, path_hash, Engine, ImagePlatform};
1111

1212
pub const CROSS_CUSTOM_DOCKERFILE_IMAGE_PREFIX: &str = "localhost/cross-rs/cross-custom-";
1313

@@ -71,7 +71,7 @@ impl<'a> Dockerfile<'a> {
7171
msg_info: &mut MessageInfo,
7272
) -> Result<String> {
7373
let uses_zig = options.cargo_variant.uses_zig();
74-
let mut docker_build = docker::command(&options.engine);
74+
let mut docker_build = options.engine.command();
7575
match docker::Engine::has_buildkit() {
7676
true => docker_build.args(["buildx", "build"]),
7777
false => docker_build.arg("build"),
@@ -147,7 +147,7 @@ impl<'a> Dockerfile<'a> {
147147
docker_build.args(["--file".into(), path]);
148148

149149
if let Some(build_opts) = options.config.build_opts() {
150-
docker_build.args(parse_docker_opts(&build_opts)?);
150+
docker_build.args(Engine::parse_opts(&build_opts)?);
151151
}
152152

153153
let has_output = options.config.build_opts().map_or(false, |opts| {

src/docker/local.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ pub(crate) fn run(
3030
let toolchain_dirs = paths.directories.toolchain_directories();
3131
let package_dirs = paths.directories.package_directories();
3232

33-
let mut cmd = cargo_safe_command(options.cargo_variant);
33+
let mut cmd = options.cargo_variant.safe_command();
3434
cmd.args(args);
3535

36-
let mut docker = subcommand(engine, "run");
36+
let mut docker = engine.subcommand("run");
3737
docker_userns(&mut docker);
3838

3939
options

src/docker/remote.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ macro_rules! bail_container_exited {
3131

3232
fn subcommand_or_exit(engine: &Engine, cmd: &str) -> Result<Command> {
3333
bail_container_exited!();
34-
Ok(subcommand(engine, cmd))
34+
Ok(engine.subcommand(cmd))
3535
}
3636

3737
impl<'a, 'b, 'c> ContainerDataVolume<'a, 'b, 'c> {
@@ -663,7 +663,7 @@ pub(crate) fn run(
663663
// if we're using a discarded volume.
664664

665665
// 3. create our start container command here
666-
let mut docker = subcommand(engine, "run");
666+
let mut docker = engine.subcommand("run");
667667
docker_userns(&mut docker);
668668
options
669669
.image
@@ -853,7 +853,7 @@ pub(crate) fn run(
853853
final_args.push("--target-dir".to_owned());
854854
final_args.push(target_dir_string);
855855
}
856-
let mut cmd = cargo_safe_command(options.cargo_variant);
856+
let mut cmd = options.cargo_variant.safe_command();
857857
cmd.args(final_args);
858858

859859
// 5. create symlinks for copied data
@@ -901,7 +901,7 @@ symlink_recurse \"${{prefix}}\"
901901
.wrap_err("when creating symlinks to provide consistent host/mount paths")?;
902902

903903
// 6. execute our cargo command inside the container
904-
let mut docker = subcommand(engine, "exec");
904+
let mut docker = engine.subcommand("exec");
905905
docker_user_id(&mut docker, engine.kind);
906906
docker_envvars(&mut docker, &options, toolchain_dirs, msg_info)?;
907907
docker_cwd(&mut docker, &paths)?;

0 commit comments

Comments
 (0)