Skip to main content

cargo_uv/
lib.rs

1#![doc = include_str!("../README.md")]
2
3pub(crate) mod cargo;
4pub(crate) mod cli;
5pub(crate) mod error;
6pub(crate) mod git;
7pub(crate) mod manifest;
8pub(crate) mod packages;
9pub(crate) mod task;
10pub(crate) mod version;
11
12pub use cargo::Cargo;
13pub use cli::{Action, Cli};
14pub use git::{Git, GitBuilder, GitFile, GitFiles, NoRootDirSet, OutputExt};
15pub use manifest::error::{
16    CargoFileError, CargoFileErrorKind, ItemType, VersionLocationErrorKind, VersionlocationError,
17};
18pub use manifest::generate_packages;
19pub use manifest::toml_file::{CargoFile, ReadToml, UnreadToml};
20pub use manifest::version_location::{VersionLocation, VersionType};
21pub use miette::Result;
22pub use packages::{Package, PackageError, PackageName, Packages};
23pub use task::{Task, TaskError, Tasks};
24pub use version::{Bumpable, Setable};
25
26use miette::{IntoDiagnostic, bail};
27use tracing::Level;
28use tracing_subscriber::util::SubscriberInitExt;
29
30pub static FOOTER: &str = "If the bug continues, raise an issue on github: https://github.com/Ozy-Viking/cargo_update_version/issues";
31
32pub fn setup_tracing(args: &Cli) -> miette::Result<()> {
33    let app_level = match args.tracing_level() {
34        Some(l) => l,
35        None => bail!(
36            help = "Raise issue in github please or try a different verbosity level.",
37            "Tracing level not set somehow."
38        ),
39    };
40
41    let target = tracing_subscriber::filter::Targets::new()
42        .with_target(module_path!(), app_level)
43        .with_default(Level::ERROR);
44
45    let env_filter = tracing_subscriber::EnvFilter::try_from_default_env()
46        .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new(target.to_string()));
47
48    #[allow(unused_mut)]
49    let mut builder = tracing_subscriber::fmt()
50        .without_time()
51        .with_env_filter(env_filter);
52    #[cfg(debug_assertions)]
53    {
54        builder = builder.with_line_number(true).with_file(true)
55    }
56    builder.finish().try_init().into_diagnostic()?;
57    Ok(())
58}
59
60#[macro_export]
61macro_rules! current_span {
62    () => {
63        tracing::span::Span::current()
64    };
65}
66
67#[macro_export]
68macro_rules! display_path {
69    ($path:ident) => {
70        $path.as_os_str().display()
71    };
72}