swap back to main

This commit is contained in:
Aaron Honeycutt 2025-04-23 18:38:22 -06:00
parent 679c998e84
commit 8ad801669a

View file

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