Line data Source code
1 : use anyhow::Result;
2 : use clap::Parser;
3 : use hunky::{app::App, logger};
4 :
5 : #[derive(Parser, Debug)]
6 : #[command(name = "hunky", version)]
7 : #[command(about = "A TUI for streaming git changes in real-time", long_about = None)]
8 : struct Args {
9 : /// Path to the git repository to watch
10 : #[arg(short, long, default_value = ".")]
11 : repo: String,
12 :
13 : /// Skip the startup animation
14 : #[arg(long)]
15 : no_splash: bool,
16 : }
17 :
18 : #[tokio::main]
19 0 : async fn main() -> Result<()> {
20 0 : let args = Args::parse();
21 0 : logger::init();
22 :
23 : // Initialize the application with the specified repository
24 0 : let mut app = App::new(&args.repo).await?;
25 :
26 : // Run the application
27 0 : app.run(!args.no_splash).await?;
28 :
29 0 : Ok(())
30 0 : }
31 :
32 : #[cfg(test)]
33 : #[path = "../tests/main.rs"]
34 : mod tests;
|