diff --git a/src/main.rs b/src/main.rs index 3e2befb..4b9f9e9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,15 +1,15 @@ +use rsfdisk::core::partition::{Guid, Partition, PartitionKind}; +use rsfdisk::core::partition_table::PartitionTableKind; +use rsfdisk::fdisk::Fdisk; +use std::fs::File; use std::io; use std::io::Write; -use std::fs::File; -use std::process::{Command, Stdio}; use std::path::Path; +use std::process::{Command, Stdio}; use sys_metrics::disks; -use rsfdisk::fdisk::Fdisk; -use rsfdisk::core::partition_table::PartitionTableKind; -use rsfdisk::core::partition::{Guid, Partition, PartitionKind}; -use nix::mount::{mount, MsFlags}; use curl::easy::Easy; +use nix::mount::{mount, MsFlags}; fn format_drive(drive_name: &str) -> rsfdisk::Result<()> { let mut disk = Fdisk::builder() @@ -20,9 +20,7 @@ fn format_drive(drive_name: &str) -> rsfdisk::Result<()> { disk.partition_table_create(PartitionTableKind::GPT)?; - let partition_type = PartitionKind::builder() - .guid(Guid::EfiSystem) - .build()?; + let partition_type = PartitionKind::builder().guid(Guid::EfiSystem).build()?; let boot = Partition::builder() .partition_type(partition_type) @@ -113,64 +111,77 @@ fn mount_partitions(drive_name: &str) { fn grab_flake() { let mut easy = Easy::new(); - easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/rust-rewrite/flake.nix").unwrap(); + easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix") + .unwrap(); let mut file = File::create("data/flake.nix").unwrap(); { let mut transfer = easy.transfer(); - transfer.write_function(|data| { - file.write_all(data).unwrap(); - Ok(data.len()) - }).unwrap(); + transfer + .write_function(|data| { + file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); transfer.perform().unwrap(); } } fn grab_config() { let mut easy = Easy::new(); - easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/rust-rewrite/configuration.nix").unwrap(); + easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix") + .unwrap(); let mut file = File::create("data/configuration.nix").unwrap(); { let mut transfer = easy.transfer(); - transfer.write_function(|data| { - file.write_all(data).unwrap(); - Ok(data.len()) - }).unwrap(); + transfer + .write_function(|data| { + file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); transfer.perform().unwrap(); - } + } } fn grab_home() { let mut easy = Easy::new(); - easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/rust-rewrite/home.nix").unwrap(); + easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix") + .unwrap(); let mut file = File::create("data/home.nix").unwrap(); { let mut transfer = easy.transfer(); - transfer.write_function(|data| { - file.write_all(data).unwrap(); - Ok(data.len()) - }).unwrap(); + transfer + .write_function(|data| { + file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); transfer.perform().unwrap(); } } -fn grab_gnome(){ +fn grab_gnome() { let mut gnome_config = Easy::new(); - gnome_config.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix").unwrap(); + gnome_config + .url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix") + .unwrap(); let mut config_file = File::create("data/gnome.nix").unwrap(); { let mut transfer = gnome_config.transfer(); - transfer.write_function(|data| { - config_file.write_all(data).unwrap(); - Ok(data.len()) - }).unwrap(); + transfer + .write_function(|data| { + config_file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); transfer.perform().unwrap(); } } @@ -191,7 +202,7 @@ fn main() { println!("Disk: {}", disk.device_name); } } - Err(_e) => println!("{}",_e), + Err(_e) => println!("{}", _e), } let mut drive_name = String::new(); @@ -199,7 +210,10 @@ fn main() { println!(""); println!("Use the full drive path such as /dev/nvme0n1 or /dev/sda"); println!(""); - println!("Which drive do we want to use for this installation?: {}", drive_name); + println!( + "Which drive do we want to use for this installation?: {}", + drive_name + ); io::stdin() .read_line(&mut drive_name) @@ -231,7 +245,12 @@ fn main() { // Copies the nix files to /mnt/etc/nixos/ let _nix_move = Command::new("mv") - .args(["-f", "data/flake.nix", "data/configuration.nix", "data/home.nix"]) + .args([ + "-f", + "data/flake.nix", + "data/configuration.nix", + "data/home.nix", + ]) .arg("/mnt/etc/nixos") .output() .expect("Failed to move nix files over"); @@ -239,10 +258,12 @@ fn main() { // Fixes a security issue with boot let _boot_fix = Command::new("sed") .arg("-i") - .arg(r#"/fsType = "vfat"/ { + .arg( + r#"/fsType = "vfat"/ { n s/\(options = \[.*\)\]/\1"umask=0077 "]/ - }"#) + }"#, + ) .arg("/mnt/etc/nixos/hardware-configuration.nix") .output() .expect("Failed to apply boot fix"); @@ -272,10 +293,12 @@ fn main() { { let mut transfer = garrus_config.transfer(); - transfer.write_function(|data| { - config_file.write_all(data).unwrap(); - Ok(data.len()) - }).unwrap(); + transfer + .write_function(|data| { + config_file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); transfer.perform().unwrap(); } @@ -297,8 +320,8 @@ fn main() { let install_status = nixos_install.wait(); println!("Exited with status {:?}", install_status); - break - }, + break; + } "2" => { let mut vm_config = Easy::new(); vm_config.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/vm/configuration.nix").unwrap(); @@ -307,10 +330,12 @@ fn main() { { let mut transfer = vm_config.transfer(); - transfer.write_function(|data| { - config_file.write_all(data).unwrap(); - Ok(data.len()) - }).unwrap(); + transfer + .write_function(|data| { + config_file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); transfer.perform().unwrap(); } @@ -348,7 +373,7 @@ fn main() { println!("Exited with status {:?}", install_status); break; - }, + } _ => println!("Invalid choice, try again."), } }