From f47be8483938b232c788f1a3e172faa469fc79e9 Mon Sep 17 00:00:00 2001 From: HimbeerserverDE Date: Mon, 26 Dec 2022 15:24:26 +0100 Subject: unpack kernel --- src/main.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src') 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(()) } -- cgit v1.2.3