migrate to rust

This commit is contained in:
Mikaël Cluseau
2024-04-29 12:54:25 +02:00
parent 6e1cb57e03
commit 8fcd2d6684
85 changed files with 3451 additions and 2460 deletions

40
src/main.rs Normal file
View File

@ -0,0 +1,40 @@
use eyre::Result;
use std::env;
use std::process::exit;
use init::cmd;
use init::dklog;
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<()> {
dklog::LOG.spawn(dklog::LOG.copy_to(tokio::io::stderr()));
dklog::init();
let call_name = env::args().next().unwrap_or("init".into());
let call_name = (call_name.rsplit_once('/').map(|(_, n)| n)).unwrap_or(call_name.as_str());
let result = match call_name {
"init" => {
cmd::init::run().await;
Ok(())
}
"init-version" => {
cmd::version::run();
Ok(())
}
"init-connect" => {
cmd::init_input::run().await;
Ok(())
}
"bootstrap" => cmd::bootstrap::run().await,
_ => {
eprintln!("invalid call name: {call_name:?}");
exit(1);
}
};
dklog::LOG.close().await;
result
}