use crate::hooks::NoHooks;
use golem_cli::command_handler::CommandHandler;
use std::process::ExitCode;
use std::sync::Arc;
#[cfg(feature = "server-commands")]
mod hooks {
use golem_cli::command::server::ServerSubcommand;
use golem_cli::command_handler::CommandHandlerHooks;
use golem_cli::context::Context;
use clap_verbosity_flag::Verbosity;
use std::sync::Arc;
pub struct NoHooks {}
impl CommandHandlerHooks for NoHooks {
#[cfg(feature = "server-commands")]
async fn handler_server_commands(
&self,
_ctx: Arc<Context>,
_subcommand: ServerSubcommand,
) -> anyhow::Result<()> {
unimplemented!()
}
#[cfg(feature = "server-commands")]
async fn run_server() -> anyhow::Result<()> {
unimplemented!()
}
#[cfg(feature = "server-commands")]
fn override_verbosity(verbosity: Verbosity) -> Verbosity {
verbosity
}
#[cfg(feature = "server-commands")]
fn override_pretty_mode() -> bool {
false
}
}
}
#[cfg(not(feature = "server-commands"))]
mod hooks {
use golem_cli::command_handler::CommandHandlerHooks;
pub struct NoHooks {}
impl CommandHandlerHooks for NoHooks {}
}
fn main() -> ExitCode {
tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.expect("Failed to build tokio runtime for golem-cli main")
.block_on(CommandHandler::handle_args(
std::env::args_os(),
Arc::new(NoHooks {}),
))
}