1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-06-03 17:14:08 +02:00

handle quotes in post-setup commands

This commit is contained in:
Robin Appelman 2022-03-16 15:35:09 +01:00
commit 9cca74924d
3 changed files with 14 additions and 2 deletions

7
Cargo.lock generated
View file

@ -445,6 +445,7 @@ dependencies = [
"petname", "petname",
"reqwest", "reqwest",
"serde", "serde",
"shell-words",
"tar", "tar",
"termion", "termion",
"tokio", "tokio",
@ -1128,6 +1129,12 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "shell-words"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
[[package]] [[package]]
name = "slab" name = "slab"
version = "0.4.5" version = "0.4.5"

View file

@ -26,6 +26,7 @@ flate2 = "1"
async-trait = "0.1" async-trait = "0.1"
enum_dispatch = "0.3" enum_dispatch = "0.3"
miette = { version = "3", features = ["fancy"] } miette = { version = "3", features = ["fancy"] }
shell-words = "1.0.0"
[profile.release] [profile.release]
lto = true lto = true

View file

@ -356,11 +356,15 @@ async fn setup(docker: &mut Docker, options: CloudOptions, config: &HazeConfig)
} }
for service in &cloud.services { for service in &cloud.services {
for cmd in service.post_setup(&docker, &cloud.id).await? { for cmd in service.post_setup(&docker, &cloud.id).await? {
cloud.exec(docker, cmd.split(" ").collect(), false).await?; cloud
.exec(docker, shell_words::split(&cmd).into_diagnostic()?, false)
.await?;
} }
} }
for cmd in &config.auto_setup.post_setup { for cmd in &config.auto_setup.post_setup {
cloud.exec(docker, cmd.split(" ").collect(), false).await?; cloud
.exec(docker, shell_words::split(&cmd).into_diagnostic()?, false)
.await?;
} }
} }
Ok(cloud) Ok(cloud)