Fix default hostname and unakite config

axtloss/rework-partitioning
UsernameSwift 2 years ago
parent f6aa0650b9
commit c26a5c5af5

@ -126,6 +126,9 @@ pub struct UnakiteArgs {
/// device of boot device /// device of boot device
#[clap(long)] #[clap(long)]
pub bootdev: String, pub bootdev: String,
/// name of kernel to use
#[clap(long)]
pub kernel: String,
} }
#[derive(Debug)] #[derive(Debug)]

@ -9,7 +9,7 @@ pub fn install_base_packages(kernel: String) {
std::fs::create_dir_all("/mnt/etc").unwrap(); std::fs::create_dir_all("/mnt/etc").unwrap();
files::copy_file("/etc/pacman.conf", "/mnt/etc/pacman.conf"); files::copy_file("/etc/pacman.conf", "/mnt/etc/pacman.conf");
if kernel.is_empty() { if kernel.is_empty() {
kernel_to_install = "linux".to_string kernel_to_install = "linux".to_string();
} else { } else {
match kernel.as_str() { match kernel.as_str() {
"linux" => kernel_to_install = "linux".to_string(), "linux" => kernel_to_install = "linux".to_string(),

@ -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"); log::debug!("Setting up Unakite");
remount(root, oldroot, efi, efidir, bootdev, true); remount(root, oldroot, efi, efidir, bootdev, true);
base::install_base_packages(); base::install_base_packages(kernel.to_string());
base::genfstab(); base::genfstab();
locale::set_locale("en_US.UTF-8 UTF-8".to_string()); locale::set_locale("en_US.UTF-8 UTF-8".to_string());
locale::set_timezone("Europe/Berlin"); // TODO: get the proper timezone 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" "Recreate grub.cfg in crystal"
); );
} }

@ -62,6 +62,7 @@ struct Unakite {
oldroot: String, oldroot: String,
efidir: String, efidir: String,
bootdev: String, bootdev: String,
kernel: String,
} }
pub fn read_config(configpath: PathBuf) { pub fn read_config(configpath: PathBuf) {
@ -107,7 +108,8 @@ pub fn read_config(configpath: PathBuf) {
&mut partitions, &mut partitions,
config.unakite.enable 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(); base::genfstab();
println!(); println!();
log::info!("Installing bootloader : {}", config.bootloader.r#type); log::info!("Installing bootloader : {}", config.bootloader.r#type);
@ -184,18 +186,18 @@ pub fn read_config(configpath: PathBuf) {
log::info!("Setup unakite"); log::info!("Setup unakite");
if config.partition.mode == PartitionMode::Auto && !config.partition.efi && config.unakite.enable && !config.partition.device.to_string().contains("nvme") { 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()); 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") { } 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()); 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 { } 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") { } 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()); 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") { } 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()); 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 { } else {
log::info!("Unakite disabled"); log::info!("Unakite disabled");
} }

@ -68,6 +68,7 @@ fn main() {
args.efi, args.efi,
&args.efidir, &args.efidir,
&args.bootdev, &args.bootdev,
&args.kernel,
); );
}, },
Command::Config { config } => { Command::Config { config } => {

Loading…
Cancel
Save