From c26a5c5af5d1cd3b3d614fdcc1a15a5c9593ce01 Mon Sep 17 00:00:00 2001 From: UsernameSwift Date: Fri, 24 Jun 2022 20:52:48 -0400 Subject: [PATCH] Fix default hostname and unakite config --- src/args.rs | 3 +++ src/functions/base.rs | 2 +- src/functions/unakite.rs | 6 +++--- src/internal/config.rs | 14 ++++++++------ src/main.rs | 1 + 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/args.rs b/src/args.rs index 3bdf1aa..2372aab 100644 --- a/src/args.rs +++ b/src/args.rs @@ -126,6 +126,9 @@ pub struct UnakiteArgs { /// device of boot device #[clap(long)] pub bootdev: String, + /// name of kernel to use + #[clap(long)] + pub kernel: String, } #[derive(Debug)] diff --git a/src/functions/base.rs b/src/functions/base.rs index a24fd5a..9bf0572 100755 --- a/src/functions/base.rs +++ b/src/functions/base.rs @@ -9,7 +9,7 @@ pub fn install_base_packages(kernel: String) { std::fs::create_dir_all("/mnt/etc").unwrap(); files::copy_file("/etc/pacman.conf", "/mnt/etc/pacman.conf"); if kernel.is_empty() { - kernel_to_install = "linux".to_string + kernel_to_install = "linux".to_string(); } else { match kernel.as_str() { "linux" => kernel_to_install = "linux".to_string(), diff --git a/src/functions/unakite.rs b/src/functions/unakite.rs index 35640dd..bacdc47 100644 --- a/src/functions/unakite.rs +++ b/src/functions/unakite.rs @@ -141,10 +141,10 @@ pub fn remount(root: &str, oldroot: &str, efi: bool, efidir: &str, bootdev: &str } } -pub fn setup_unakite(root: &str, oldroot: &str, efi: bool, efidir: &str, bootdev: &str) { +pub fn setup_unakite(root: &str, oldroot: &str, efi: bool, efidir: &str, bootdev: &str, kernel: &str) { log::debug!("Setting up Unakite"); remount(root, oldroot, efi, efidir, bootdev, true); - base::install_base_packages(); + base::install_base_packages(kernel.to_string()); base::genfstab(); locale::set_locale("en_US.UTF-8 UTF-8".to_string()); locale::set_timezone("Europe/Berlin"); // TODO: get the proper timezone @@ -203,4 +203,4 @@ pub fn setup_unakite(root: &str, oldroot: &str, efi: bool, efidir: &str, bootdev ), "Recreate grub.cfg in crystal" ); -} \ No newline at end of file +} diff --git a/src/internal/config.rs b/src/internal/config.rs index 1b7cd99..bbbf3b6 100755 --- a/src/internal/config.rs +++ b/src/internal/config.rs @@ -62,6 +62,7 @@ struct Unakite { oldroot: String, efidir: String, bootdev: String, + kernel: String, } pub fn read_config(configpath: PathBuf) { @@ -107,7 +108,8 @@ pub fn read_config(configpath: PathBuf) { &mut partitions, config.unakite.enable ); - base::install_base_packages(kernel); + let kerneltype = config.unakite.kernel.clone(); // Implemented because the borrow checker doesn't allow passing the value itself to the function + base::install_base_packages(kerneltype); base::genfstab(); println!(); log::info!("Installing bootloader : {}", config.bootloader.r#type); @@ -184,18 +186,18 @@ pub fn read_config(configpath: PathBuf) { log::info!("Setup unakite"); if config.partition.mode == PartitionMode::Auto && !config.partition.efi && config.unakite.enable && !config.partition.device.to_string().contains("nvme") { let root = PathBuf::from("/dev/").join(config.partition.device.as_str()); - unakite::setup_unakite(format!("{}2",root.to_str().unwrap()).as_str(), format!("{}3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot", format!("{}1",root.to_str().unwrap()).as_str()) + unakite::setup_unakite(format!("{}2",root.to_str().unwrap()).as_str(), format!("{}3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot", format!("{}1",root.to_str().unwrap()).as_str(), &config.unakite.kernel) } else if config.partition.mode == PartitionMode::Auto && config.partition.efi && config.unakite.enable && !config.partition.device.to_string().contains("nvme") { let root = PathBuf::from("/dev/").join(config.partition.device.as_str()); - unakite::setup_unakite(format!("{}2",root.to_str().unwrap()).as_str(), format!("{}3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot/efi", format!("{}1",root.to_str().unwrap()).as_str()) + unakite::setup_unakite(format!("{}2",root.to_str().unwrap()).as_str(), format!("{}3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot/efi", format!("{}1",root.to_str().unwrap()).as_str(), &config.unakite.kernel) } else if config.unakite.enable { - unakite::setup_unakite(&config.unakite.root, &config.unakite.oldroot, config.partition.efi, &config.unakite.efidir, &config.unakite.bootdev); + unakite::setup_unakite(&config.unakite.root, &config.unakite.oldroot, config.partition.efi, &config.unakite.efidir, &config.unakite.bootdev, &config.unakite.kernel); } else if config.partition.mode == PartitionMode::Auto && config.partition.efi && config.unakite.enable && config.partition.device.to_string().contains("nvme") { let root = PathBuf::from("/dev/").join(config.partition.device.as_str()); - unakite::setup_unakite(format!("{}p2",root.to_str().unwrap()).as_str(), format!("{}p3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot/efi", format!("{}p1",root.to_str().unwrap()).as_str()) + unakite::setup_unakite(format!("{}p2",root.to_str().unwrap()).as_str(), format!("{}p3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot/efi", format!("{}p1",root.to_str().unwrap()).as_str(), &config.unakite.kernel) } else if config.partition.mode == PartitionMode::Auto && !config.partition.efi && config.unakite.enable && config.partition.device.to_string().contains("nvme") { let root = PathBuf::from("/dev/").join(config.partition.device.as_str()); - unakite::setup_unakite(format!("{}p2",root.to_str().unwrap()).as_str(), format!("{}p3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot", format!("{}p1",root.to_str().unwrap()).as_str()) + unakite::setup_unakite(format!("{}p2",root.to_str().unwrap()).as_str(), format!("{}p3",root.to_str().unwrap()).as_str(), config.partition.efi, "/boot", format!("{}p1",root.to_str().unwrap()).as_str(), &config.unakite.kernel) } else { log::info!("Unakite disabled"); } diff --git a/src/main.rs b/src/main.rs index adee0c8..3d88ad0 100755 --- a/src/main.rs +++ b/src/main.rs @@ -68,6 +68,7 @@ fn main() { args.efi, &args.efidir, &args.bootdev, + &args.kernel, ); }, Command::Config { config } => {