use clap::{Parser, Subcommand};
use color_eyre::eyre::Result;
mod commands;
#[derive(Parser)]
#[command(name = "polyte")]
#[command(version, about = "CLI tool for querying Polymarket APIs", long_about = None)]
struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Data {
#[command(subcommand)]
command: commands::DataCommand,
},
Gamma {
#[command(subcommand)]
command: commands::GammaCommand,
},
Ws {
#[command(subcommand)]
command: commands::WsCommand,
},
Completions(commands::CompletionsCommand),
}
#[tokio::main]
async fn main() -> Result<()> {
color_eyre::install()?;
let cli = Cli::parse();
match cli.command {
Commands::Data { command } => command.run().await?,
Commands::Gamma { command } => command.run().await?,
Commands::Ws { command } => command.run().await?,
Commands::Completions(cmd) => cmd.run::<Cli>(),
}
Ok(())
}