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