refactor
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
JMARyA 2025-01-09 18:17:55 +01:00
parent 59203d9085
commit 753f53d4da
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
5 changed files with 27 additions and 42 deletions

View file

@ -35,6 +35,7 @@ pub fn first_boot_values(conf: &GeneralConfig) {
} }
std::os::unix::fs::symlink(tz_link, "/mnt/etc/localtime").unwrap(); std::os::unix::fs::symlink(tz_link, "/mnt/etc/localtime").unwrap();
arch_chroot(&["hwclock", "--systohc"], None, false);
// Keymap // Keymap
print_status("Writing /etc/vconsole.conf"); print_status("Writing /etc/vconsole.conf");
@ -49,8 +50,6 @@ pub fn first_boot_values(conf: &GeneralConfig) {
uncomment_first_value_of(&conf.locale, "/mnt/etc/locale.gen"); uncomment_first_value_of(&conf.locale, "/mnt/etc/locale.gen");
arch_chroot(&["locale-gen"], None, false); arch_chroot(&["locale-gen"], None, false);
arch_chroot(&["hwclock", "--systohc"], None, false);
if let Some(root_pw) = &conf.root_password { if let Some(root_pw) = &conf.root_password {
change_passwd("root", root_pw); change_passwd("root", root_pw);
} }

View file

@ -26,7 +26,6 @@ pub fn setup_mkinitcpio(conf: &DriveConfig) {
std::fs::write("/mnt/etc/kernel/cmdline", format!("root={}", conf.root)).unwrap(); std::fs::write("/mnt/etc/kernel/cmdline", format!("root={}", conf.root)).unwrap();
} }
// TODO : more configs
print_status("Writing /etc/mkinitcpio.conf"); print_status("Writing /etc/mkinitcpio.conf");
install_file( install_file(
"/mnt/etc/mkinitcpio.conf", "/mnt/etc/mkinitcpio.conf",

View file

@ -76,6 +76,7 @@ pub fn uncomment_tag(tag: &str, file: &str) {
std::fs::write(file, new).unwrap(); std::fs::write(file, new).unwrap();
} }
/// Install a config on a new system
pub fn install(conf: InstallConfig) { pub fn install(conf: InstallConfig) {
// Drive Setup // Drive Setup
format_drives(&conf.drive); format_drives(&conf.drive);

View file

@ -50,25 +50,7 @@ fn main() {
} }
Some(("create-img", install_args)) => { Some(("create-img", install_args)) => {
let config_file: &String = install_args.get_one("config").unwrap(); let config_file: &String = install_args.get_one("config").unwrap();
let config_content = std::fs::read_to_string(config_file); let conf = read_conf(config_file);
let conf: InstallConfig = match config_content {
Ok(content) => match toml::from_str(&content) {
Ok(config) => config,
Err(e) => {
eprintln!(
"{} {}",
"Error: Could not deserialize TOML file.".paint(Color::Red),
e.paint(Color::Red)
);
std::process::exit(1);
}
},
Err(_) => {
eprintln!("{}", "Error: Could not read config file.".paint(Color::Red));
std::process::exit(1);
}
};
println!("Installing to a disk image is not yet supported"); println!("Installing to a disk image is not yet supported");
unimplemented!() unimplemented!()
@ -81,25 +63,7 @@ fn main() {
let config_file: &String = install_args.get_one("config").unwrap(); let config_file: &String = install_args.get_one("config").unwrap();
let force = install_args.get_flag("force"); let force = install_args.get_flag("force");
let config_content = std::fs::read_to_string(config_file); let conf = read_conf(config_file);
let conf: InstallConfig = match config_content {
Ok(content) => match toml::from_str(&content) {
Ok(config) => config,
Err(e) => {
eprintln!(
"{} {}",
"Error: Could not deserialize TOML file.".paint(Color::Red),
e.paint(Color::Red)
);
std::process::exit(1);
}
},
Err(_) => {
eprintln!("{}", "Error: Could not read config file.".paint(Color::Red));
std::process::exit(1);
}
};
if !force { if !force {
print_config(&conf); print_config(&conf);
@ -128,3 +92,25 @@ pub fn expect_yes() {
std::process::exit(0); std::process::exit(0);
} }
} }
pub fn read_conf(config_file: &str) -> InstallConfig {
let config_content = std::fs::read_to_string(config_file);
match config_content {
Ok(content) => match toml::from_str(&content) {
Ok(config) => config,
Err(e) => {
eprintln!(
"{} {}",
"Error: Could not deserialize TOML file.".paint(Color::Red),
e.paint(Color::Red)
);
std::process::exit(1);
}
},
Err(_) => {
eprintln!("{}", "Error: Could not read config file.".paint(Color::Red));
std::process::exit(1);
}
}
}