reactive_graph_server/
bin_server.rs1use crate::server::args::ServerAndSharedArguments;
2#[cfg(target_os = "linux")]
3use crate::server::daemon::daemonize;
4use crate::server::server;
5use crate::shared::completions::handle_completions;
6use crate::shared::info::handle_info_command;
7#[cfg(target_os = "linux")]
8use crate::shared::manpages::handle_man_pages;
9use crate::shared::markdown_help::handle_markdown_help;
10use clap::Parser;
11use std::alloc::System;
12
13pub mod server;
14pub mod shared;
15
16#[global_allocator]
17static ALLOCATOR: System = System;
18
19fn main() {
20 let args = ServerAndSharedArguments::parse();
21
22 handle_markdown_help::<ServerAndSharedArguments>(&args.shared.markdown_help);
23
24 #[cfg(target_os = "linux")]
25 handle_man_pages::<ServerAndSharedArguments>(&args.shared.man_pages);
26
27 handle_completions::<ServerAndSharedArguments>(&args.shared.completions);
28
29 handle_info_command(&args.shared.info);
30
31 if let Some(commands) = &args.server.commands {
32 #[allow(unreachable_patterns, clippy::collapsible_match)]
33 match commands {
34 #[cfg(target_os = "linux")]
35 server::commands::ServerCommands::Daemon(args) => daemonize(args),
36 _ => {}
37 }
38 }
39
40 server(args.server)
41}