aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-02-12 13:04:37 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-02-12 13:04:37 +0100
commitc46310b6872ea30762f7b63eca5cedd54b07a9d0 (patch)
treed4728a4ab626210f2439a472ef56a4416f5d91ba /src
parentc9d3b6144c397f8e46929ae8dfbeb32a49915b57 (diff)
limit supported architectures
Diffstat (limited to 'src')
-rw-r--r--src/main.rs18
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);