feat: fix external_arguments

This commit is contained in:
2023-11-11 15:42:59 +08:00
parent 71f8cfaeb1
commit 589136306e
2 changed files with 3 additions and 10 deletions

View File

@@ -1,4 +1,3 @@
use std::collections::HashMap;
use std::fs;
use std::path::PathBuf;
@@ -15,7 +14,7 @@ pub struct DockerBuildImage {
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct DockerBuildConfig {
pub image: Option<String>,
pub external_arguments: Option<HashMap<String, String>>,
pub external_arguments: Option<Vec<String>>,
pub images: Option<Vec<DockerBuildImage>>,
pub mirror: Option<String>,
}

View File

@@ -1,4 +1,3 @@
use std::collections::HashMap;
use std::fs;
use std::process::{Command, ExitStatus};
@@ -72,7 +71,7 @@ impl DockerCmd {
self
}
pub fn exec(self, cmds: &[String], external_arguments: &Option<HashMap<String, String>>) -> XResult<ExitStatus> {
pub fn exec(self, cmds: &[String], external_arguments: &Option<Vec<String>>) -> XResult<ExitStatus> {
let mut cmd = Command::new(DOCKER_CMD);
cmd.arg("run");
cmd.arg("--rm");
@@ -80,12 +79,7 @@ impl DockerCmd {
cmd.arg("-t");
}
if let Some(external_arguments) = external_arguments {
for (k, v) in external_arguments {
if !k.is_empty() {
cmd.arg(k);
if !v.is_empty() { cmd.arg(k); }
}
}
external_arguments.iter().for_each(|a| if !a.is_empty() { cmd.arg(a); });
}
cmd.arg("--user");
cmd.arg(&format!("{}:{}",