initrd/src/main.rs

52 lines
1.2 KiB
Rust
Raw Normal View History

2024-04-29 10:54:25 +00:00
mod bootstrap;
2024-05-14 22:59:57 +00:00
mod lsblk;
mod lvm;
2024-04-29 10:54:25 +00:00
2024-06-28 19:54:17 +00:00
use anyhow::format_err;
2024-05-14 22:59:57 +00:00
use log::error;
use std::io::{self, Read, Write};
use std::process::exit;
use std::{env, fs};
2024-04-29 10:54:25 +00:00
2024-06-28 19:54:17 +00:00
#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
2024-05-14 22:59:57 +00:00
if let None = env::var_os("RUST_LOG") {
env::set_var("RUST_LOG", "info");
}
env_logger::init();
if let Some(arg) = env::args().into_iter().nth(1) {
match arg.as_str() {
"hello" => println!("hello"),
_ => {
error!("invalid arg: {arg}");
exit(1);
}
};
exit(0);
}
2024-06-28 19:54:17 +00:00
let cfg = fs::read("config.yaml").map_err(|e| format_err!("failed to read config: {e}"))?;
2024-04-29 10:54:25 +00:00
2024-06-28 19:54:17 +00:00
let cfg: bootstrap::config::Config = serde_yaml::from_slice(cfg.as_slice())
.map_err(|e| format_err!("failed to parse config: {e}"))?;
2024-04-29 10:54:25 +00:00
2024-06-28 19:54:17 +00:00
serde_yaml::to_writer(io::stdout(), &cfg)?;
2024-05-14 22:59:57 +00:00
for pv in lvm::pvs().unwrap() {
println!("pv: {pv:?}");
}
for vg in lvm::vgs().unwrap() {
println!("vg: {vg:?}");
}
for lv in lvm::lvs().unwrap() {
println!("lv: {lv:?}");
}
println!("lsblk: {:?}", lsblk::report());
// TODO
2024-06-28 19:54:17 +00:00
Ok(())
2024-04-29 10:54:25 +00:00
}