diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-02-12 13:04:37 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-02-12 13:04:37 +0100 |
commit | c46310b6872ea30762f7b63eca5cedd54b07a9d0 (patch) | |
tree | d4728a4ab626210f2439a472ef56a4416f5d91ba /src | |
parent | c9d3b6144c397f8e46929ae8dfbeb32a49915b57 (diff) |
limit supported architectures
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 1c8a8b7..4fba71e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -36,7 +36,7 @@ fn download_kernel(file_name: &str) -> anyhow::Result<()> { Ok(()) } -fn compile(arch: &str) -> anyhow::Result<()> { +fn compile(arch: &str, img: &str) -> anyhow::Result<()> { let arch_arg = format!("ARCH={}", arch); let mut defconfig = Command::new("make"); @@ -72,7 +72,7 @@ fn compile(arch: &str) -> anyhow::Result<()> { let mut make = Command::new("make"); make.arg(&arch_arg) - .arg("bzImage") + .arg(img) .arg("modules") .arg("-j".to_owned() + &num_cpus::get().to_string()); @@ -86,6 +86,18 @@ fn compile(arch: &str) -> anyhow::Result<()> { fn main() -> anyhow::Result<()> { let args = Args::parse(); + let arch = String::from(match args.arch.as_str() { + "x86_64" => "x86_64", + "rpi" => "arm64", + _ => bail!("invalid architecture (supported: x86_64 rpi)"), + }); + + let img = String::from(match args.arch.as_str() { + "x86_64" => "bzImage", + "rpi" => "Image.gz", + _ => bail!("invalid architecture (supported: x86_64 rpi)"), + }); + let file_name = Path::new(LATEST).file_name().unwrap().to_str().unwrap(); download_kernel(file_name)?; @@ -103,7 +115,7 @@ fn main() -> anyhow::Result<()> { env::set_current_dir(file_name.trim_end_matches(".tar.xz"))?; println!("Compiling kernel..."); - compile(&args.arch)?; + compile(&arch, &img)?; println!("Kernel compiled successfully"); let kernel_path = format!("arch/{}/boot/bzImage", args.arch); |