使用标准库

main
阳光少年 1 year ago
parent 20271ccf77
commit 84790df859

@ -9,3 +9,8 @@ toml = "0.8.8"
clap = {version = "4.5.0", features = ["derive"]} clap = {version = "4.5.0", features = ["derive"]}
nix = {version = "0.29", features = ["sched", "process", "hostname", "mount", "fs", "env", "user", "term", "signal"]} nix = {version = "0.29", features = ["sched", "process", "hostname", "mount", "fs", "env", "user", "term", "signal"]}
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
[[bin]]
name = "network"
path = "src/network.rs"

@ -95,14 +95,14 @@ fn extend_image(image_name: &String) -> Result<PathBuf> {
.arg("-C") .arg("-C")
.arg(volume_path_str) .arg(volume_path_str)
.output()?; .output()?;
let std_out = String::from_utf8_lossy(&out.stdout);
let std_err = String::from_utf8_lossy(&out.stderr); if out.status.success() {
if std_err.len() == 0 { println!("解压缩完毕: {image_name:?}");
println!("解压缩完毕: {std_out:?}");
Ok(volume_path) Ok(volume_path)
} else { } else {
// 删除 volume_path // 删除 volume_path
std::fs::remove_dir_all(volume_path)?; std::fs::remove_dir_all(volume_path)?;
let std_err = String::from_utf8_lossy(&out.stderr);
Err(RockerError::from(io::Error::new(io::ErrorKind::Other, format!("解压缩镜像失败: {std_err}")))) Err(RockerError::from(io::Error::new(io::ErrorKind::Other, format!("解压缩镜像失败: {std_err}"))))
} }
} }
@ -134,12 +134,10 @@ fn init_container_overlay<P: AsRef<Path>>(volume_path: P, upper_path: P, merged_
.arg(merged_dir) .arg(merged_dir)
.output()?; .output()?;
// let std_out = String::from_utf8_lossy(&out.stdout); if out.status.success() {
let std_err = String::from_utf8_lossy(&out.stderr);
if std_err.len() == 0 {
println!("容器文件系统创建完成"); println!("容器文件系统创建完成");
} else { } else {
let std_err = String::from_utf8_lossy(&out.stderr);
return Err(RockerError::from(io::Error::new(io::ErrorKind::Other, format!("容器文件系统创建失败: {std_err:?}")))); return Err(RockerError::from(io::Error::new(io::ErrorKind::Other, format!("容器文件系统创建失败: {std_err:?}"))));
} }
Ok(()) Ok(())
@ -172,11 +170,11 @@ fn init_container_custom_volume<P: AsRef<Path>>(container_merged_path: P, custom
.arg(host_path) .arg(host_path)
.arg(container_path) .arg(container_path)
.output()?; .output()?;
// let std_out = String::from_utf8_lossy(&out.stdout);
let std_err = String::from_utf8_lossy(&out.stderr); if out.status.success() {
if std_err.len() == 0 {
println!("创建自定义 volume: {custom_volume:?}"); println!("创建自定义 volume: {custom_volume:?}");
} else { } else {
let std_err = String::from_utf8_lossy(&out.stderr);
return Err(RockerError::OtherError(format!("创建volume失败: {std_err}"))) return Err(RockerError::OtherError(format!("创建volume失败: {std_err}")))
} }
} }

@ -0,0 +1,33 @@
fn main(){
}
#[test]
fn test_network() {
let bridge_name = "test_rocker";
// ip link add xxxx
// ip link add name br0 type bridge
let out = std::process::Command::new("ip")
.arg("link")
.arg("add")
.arg("name")
.arg(bridge_name)
.arg("type")
.arg("bridge")
.output()
.unwrap();
out.status.success();
println!("{:?}", out);
println!("123");
}
Loading…
Cancel
Save