Skip to main content

todo_tree/
lib.rs

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}