Skip to main content

asana_cli/
lib.rs

1#![cfg_attr(
2    not(test),
3    deny(clippy::unwrap_used, clippy::panic, clippy::indexing_slicing)
4)]
5#![cfg_attr(test, allow(clippy::disallowed_methods))]
6//! Core library for the Asana CLI application.
7
8/// Asana API client abstractions.
9pub mod api;
10/// Command-line interface components.
11pub mod cli;
12/// Configuration management utilities.
13pub mod config;
14/// Health check integrations.
15pub mod doctor;
16/// Error handling helpers.
17pub mod error;
18/// Filter parsing and persistence.
19pub mod filters;
20/// Shared data models.
21pub mod models;
22/// Output rendering helpers.
23pub mod output;
24/// Rich text preparation and validation for Asana API.
25pub mod rich_text;
26/// User configurable templates.
27pub mod templates;
28
29use crate::error::{Error, Result};
30use tracing_subscriber::{EnvFilter, fmt};
31
32/// Initialize global tracing with sensible defaults.
33///
34/// # Errors
35/// Returns an error if the tracing subscriber cannot be initialised.
36pub fn init_tracing() -> Result<()> {
37    let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
38
39    fmt()
40        .with_env_filter(filter)
41        .with_target(false)
42        .try_init()
43        .map_err(|err| Error::TracingInit(err.to_string()))?;
44
45    Ok(())
46}