diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-12-26 15:24:26 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-12-26 15:24:26 +0100 |
commit | f47be8483938b232c788f1a3e172faa469fc79e9 (patch) | |
tree | 149dcdeca76b949118207508318e9f06167507b8 /src | |
parent | b09e5315f4e8ba66482f2afffe549e1f89c37330 (diff) |
unpack kernel
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 8048fc2..231e55d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,7 @@ +use anyhow::bail; use std::fs::File; use std::path::Path; +use std::process::Command; const LATEST: &str = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.1.tar.xz"; @@ -7,11 +9,9 @@ const CONFIG: &str = r#" CONFIG_IPV6=y "#; -fn download_kernel() -> anyhow::Result<()> { +fn download_kernel(file_name: &str) -> anyhow::Result<()> { println!("Downloading kernel source..."); - let file_name = Path::new(LATEST).file_name().unwrap().to_str().unwrap(); - let mut file = File::create(file_name)?; reqwest::blocking::get(LATEST)? @@ -23,7 +23,18 @@ fn download_kernel() -> anyhow::Result<()> { } fn main() -> anyhow::Result<()> { - download_kernel()?; + let file_name = Path::new(LATEST).file_name().unwrap().to_str().unwrap(); + + download_kernel(file_name)?; + + let mut untar = Command::new("tar"); + untar.arg("xf").arg(file_name); + + if !untar.spawn()?.wait()?.success() { + bail!("untar failed"); + } + + println!("Kernel source unpacked successfully"); Ok(()) } |