ci_manager/
lib.rs

1#![allow(unused_imports)]
2
3pub(crate) use {
4    crate::util::*, ci_provider::CIProvider,
5    config::commands::locate_failure_log::locate_failure_log, config::Config,
6};
7
8pub(crate) use {
9    anyhow::{bail, Context, Result},
10    clap::{
11        builder::styling::{AnsiColor, Effects, Styles},
12        *,
13    },
14    config::commands,
15    once_cell::sync::Lazy,
16    regex::Regex,
17    serde::{Deserialize, Serialize},
18    std::{
19        borrow, env,
20        error::Error,
21        fmt, fs, io,
22        marker::PhantomData,
23        path::{Path, PathBuf},
24        process::{Command, ExitCode},
25        sync::OnceLock,
26    },
27    strum::*,
28};
29// Imports for the Gitlab API v3
30pub(crate) use gitlab::{
31    api::{
32        self,
33        issues::ProjectIssues,
34        projects::{self, issues, jobs},
35        Query,
36    },
37    Gitlab,
38};
39
40/// Module containing macros related to protocol words.
41pub mod macros {
42    #[macro_export]
43    // These macros are needed because the normal ones panic when there's a broken pipe.
44    // This is especially problematic for CLI tools that are frequently piped into `head` or `grep -q`
45    macro_rules! pipe_println {
46        () => (print!("\n"));
47        ($fmt:expr) => ({
48            writeln!(io::stdout(), $fmt)
49        });
50        ($fmt:expr, $($arg:tt)*) => ({
51            writeln!(io::stdout(), $fmt, $($arg)*)
52        })
53    }
54    pub use pipe_println;
55
56    #[macro_export]
57    macro_rules! pipe_print {
58        () => (print!("\n"));
59        ($fmt:expr) => ({
60            write!(io::stdout(), $fmt)
61        });
62        ($fmt:expr, $($arg:tt)*) => ({
63            write!(io::stdout(), $fmt, $($arg)*)
64        })
65    }
66
67    pub use pipe_print;
68}
69
70pub mod ci_provider;
71pub mod config;
72pub mod err_parse;
73pub mod issue;
74pub mod util;
75
76pub use crate::run::run;
77pub mod run;