1pub mod cli;
2pub mod commands;
3pub mod config;
4pub mod core;
5pub mod parser;
6pub mod printer;
7pub mod scanner;
8pub mod utils;
9
10pub use crate::core::{Priority, ScanResult, ScanSummary, TodoItem};
11use clap::Parser;
12use cli::{Cli, Commands};
13use commands::{init, list, scan, stats, tags as cli_tags, workflow};
14use eyre::Result;
15
16pub fn run() -> Result<()> {
17 let cli = Cli::parse();
18
19 if cli.global.no_color || std::env::var("NO_COLOR").is_ok() {
20 colored::control::set_override(false);
21 }
22
23 match cli.get_command() {
24 Commands::Scan(args) => scan::run(args, &cli.global),
25 Commands::List(args) => list::run(args, &cli.global),
26 Commands::Tags(args) => cli_tags::run(args, &cli.global),
27 Commands::Init(args) => init::run(args),
28 Commands::Workflow(args) => workflow::run(args),
29 Commands::Stats(args) => stats::run(args, &cli.global),
30 }
31}