52 lines
1.2 KiB
Rust
52 lines
1.2 KiB
Rust
mod bootstrap;
|
|
mod lsblk;
|
|
mod lvm;
|
|
|
|
use anyhow::format_err;
|
|
use log::error;
|
|
use std::io::{self, Read, Write};
|
|
use std::process::exit;
|
|
use std::{env, fs};
|
|
|
|
#[tokio::main(flavor = "current_thread")]
|
|
async fn main() -> anyhow::Result<()> {
|
|
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);
|
|
}
|
|
|
|
let cfg = fs::read("config.yaml").map_err(|e| format_err!("failed to read config: {e}"))?;
|
|
|
|
let cfg: bootstrap::config::Config = serde_yaml::from_slice(cfg.as_slice())
|
|
.map_err(|e| format_err!("failed to parse config: {e}"))?;
|
|
|
|
serde_yaml::to_writer(io::stdout(), &cfg)?;
|
|
|
|
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
|
|
|
|
Ok(())
|
|
}
|