update shell file and code for curl

This commit is contained in:
Aaron Honeycutt 2025-04-09 19:55:19 -06:00
parent 382e4e3f06
commit ea7303c2ee
2 changed files with 67 additions and 5 deletions

View file

@ -13,6 +13,7 @@
llvmPackages.clang llvmPackages.clang
# System # System
openssl
pkg-config pkg-config
util-linux util-linux
]; ];

View file

@ -1,9 +1,13 @@
use std::io; use std::io;
use std::io::{stdout, Write};
use std::fs::File;
use sys_metrics::disks; use sys_metrics::disks;
use rsfdisk::fdisk::Fdisk; use rsfdisk::fdisk::Fdisk;
use rsfdisk::core::partition_table::PartitionTableKind; use rsfdisk::core::partition_table::PartitionTableKind;
use rsfdisk::core::partition::{Guid, Partition, PartitionKind, PartitionList}; use rsfdisk::core::partition::{Guid, Partition, PartitionKind, PartitionList};
use curl::easy::Easy;
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()
.assign_device(drive_name) .assign_device(drive_name)
@ -31,7 +35,7 @@ fn format_drive(drive_name: &str) -> rsfdisk::Result<()> {
.name("Root") .name("Root")
.size_in_sectors(499_033_071_616) .size_in_sectors(499_033_071_616)
.build()?; .build()?;
let _ = disk.partition_add(root)?; let _ = disk.partition_add(root)?;
disk.partition_table_write_to_disk()?; disk.partition_table_write_to_disk()?;
@ -39,12 +43,64 @@ fn format_drive(drive_name: &str) -> rsfdisk::Result<()> {
Ok(()) Ok(())
} }
fn mount_parts() { fn mount_parts() {}
fn grab_flake() {
let mut easy = Easy::new();
easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix").unwrap();
let mut file = File::create("flake.nix").unwrap();
{
let mut transfer = easy.transfer();
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/main/configuration.nix").unwrap();
let mut file = File::create("configuration.nix").unwrap();
{
let mut transfer = easy.transfer();
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/main/home.nix").unwrap();
let mut file = File::create("home.nix").unwrap();
{
let mut transfer = easy.transfer();
transfer.write_function(|data| {
file.write_all(data).unwrap();
Ok(data.len())
}).unwrap();
transfer.perform().unwrap();
}
} }
fn main() { fn main() {
println!("--------------------------------------");
println!("| Welcome to the Nyxi Installer 2.0! |");
println!("--------------------------------------");
println!("");
println!("Availble disks for installation:"); println!("Availble disks for installation:");
println!("---------------------------------");
println!(""); println!("");
match disks::get_physical_ioblocks() { match disks::get_physical_ioblocks() {
@ -57,7 +113,7 @@ fn main() {
} }
let mut drive_name = String::new(); let mut drive_name = String::new();
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!("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);
@ -65,7 +121,7 @@ fn main() {
io::stdin() io::stdin()
.read_line(&mut drive_name) .read_line(&mut drive_name)
.expect("Failed to read line"); .expect("Failed to read line");
let drive_name = drive_name.trim(); let drive_name = drive_name.trim();
// let deposit_number: f64 = deposit_amount.parse().expect("Input not an integer"); // let deposit_number: f64 = deposit_amount.parse().expect("Input not an integer");
@ -73,4 +129,9 @@ fn main() {
// Partitioning the selected drive // Partitioning the selected drive
format_drive(drive_name); format_drive(drive_name);
// Download nix files
grab_flake();
grab_config();
grab_home();
} }