2026-07-13 02:22:37 +09:00
|
|
|
fn main() {
|
2026-07-17 03:58:27 +09:00
|
|
|
let arguments = std::env::args_os().skip(1).collect::<Vec<_>>();
|
|
|
|
|
if let Some(result) = lazaret_linux::process::dispatch_private_process_role(&arguments) {
|
|
|
|
|
if let Err(error) = result {
|
|
|
|
|
eprintln!("private process role failed: {error}");
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
2026-07-17 07:54:46 +09:00
|
|
|
if arguments.first().and_then(|value| value.to_str()) == Some("state") {
|
|
|
|
|
match lazaret_client::state::run_command(&arguments[1..]) {
|
|
|
|
|
Ok(status) => std::process::exit(status),
|
|
|
|
|
Err(error) => {
|
|
|
|
|
eprintln!("Lazaret state maintenance failed: {error}");
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-07-16 16:28:18 +09:00
|
|
|
let current_workspace = match std::env::current_dir() {
|
|
|
|
|
Ok(path) => path,
|
|
|
|
|
Err(error) => {
|
|
|
|
|
eprintln!("cannot determine current workspace: {error}");
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-07-17 03:58:27 +09:00
|
|
|
let command = match lazaret_client::parse_command_line(arguments, current_workspace) {
|
|
|
|
|
Ok(command) => command,
|
|
|
|
|
Err(error) => {
|
|
|
|
|
eprintln!("invalid command line: {error}");
|
|
|
|
|
std::process::exit(2);
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-07-18 22:35:48 +09:00
|
|
|
let mut backend = match lazaret_client::coordinator_backend::CoordinatorClientBackend::new() {
|
2026-07-16 16:28:18 +09:00
|
|
|
Ok(backend) => backend,
|
|
|
|
|
Err(error) => {
|
|
|
|
|
eprintln!("Lazaret failed: {error}");
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
match lazaret_client::run(
|
|
|
|
|
&mut backend,
|
|
|
|
|
&command,
|
|
|
|
|
&mut std::io::stdout(),
|
|
|
|
|
&mut std::io::stderr(),
|
|
|
|
|
) {
|
|
|
|
|
Ok(status) => std::process::exit(status),
|
|
|
|
|
Err(error) => {
|
|
|
|
|
eprintln!("Lazaret failed: {error}");
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-07-13 02:22:37 +09:00
|
|
|
}
|