diff --git a/Cargo.lock b/Cargo.lock index 44be8eb..b3acb89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -419,8 +419,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] -name = "os-checker-plugin-cargo" -version = "0.1.0" +name = "os-checker-plugin" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "949cbbc0f5757ab7f91d36e9786e81e5f933f0a5edd25535108f46053eb2ea89" dependencies = [ "camino", "cargo_metadata", @@ -430,13 +432,23 @@ dependencies = [ "eyre", "indexmap", "jiff", - "nextest-metadata", - "os-checker-types", "serde", "serde_json", "tracing", "tracing-error", "tracing-subscriber", +] + +[[package]] +name = "os-checker-plugin-cargo" +version = "0.1.0" +dependencies = [ + "eyre", + "nextest-metadata", + "os-checker-plugin", + "os-checker-types", + "serde", + "tracing", "walkdir", ] diff --git a/Cargo.toml b/Cargo.toml index 9fc76cc..bf6c146 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,29 +10,19 @@ A plugin to os-checker to collect basic information from cargo and git. repository = "https://github.com/os-checker/plugin-cargo" [dependencies] -jiff = "0.1" -serde = { version = "1", features = ["derive"] } -serde_json = { version = "1", features = ["preserve_order"] } - -compact_str = "0.8" +plugin = { version = "0.1.1", package = "os-checker-plugin" } os-checker-types = "0.4.1" -cargo_metadata = "0.18" -duct = "0.13" +serde = "1" + walkdir = "2" nextest-metadata = "0.12" -camino = "1" -indexmap = { version = "2", features = ["serde"] } - # error handling eyre = "0.6" -color-eyre = "0.6" # logger tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tracing-error = "0.2" # The profile that 'dist' will build with [profile.dist] diff --git a/src/crates_io/release_count.rs b/src/crates_io/release_count.rs index a9c6b2d..6b53eaa 100644 --- a/src/crates_io/release_count.rs +++ b/src/crates_io/release_count.rs @@ -1,5 +1,5 @@ -use crate::prelude::*; use cargo_metadata::semver::Version; +use plugin::prelude::*; use serde::Deserialize; use super::release_tarball::TarballInfo; diff --git a/src/crates_io/release_tarball.rs b/src/crates_io/release_tarball.rs index 82c9fa8..23444e5 100644 --- a/src/crates_io/release_tarball.rs +++ b/src/crates_io/release_tarball.rs @@ -1,7 +1,8 @@ use super::IndexFile; -use crate::{prelude::*, repo::local_base_dir}; +use crate::repo::local_base_dir; use cargo_metadata::semver::Version; use eyre::ContextCompat; +use plugin::prelude::*; use std::os::linux::fs::MetadataExt; #[derive(Debug)] diff --git a/src/database.rs b/src/database.rs index cc4f41d..c87e76e 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,5 +1,5 @@ -use crate::prelude::*; use indexmap::Equivalent; +use plugin::prelude::*; use serde::Deserialize; use std::{hash::Hash, sync::LazyLock}; diff --git a/src/lib.rs b/src/lib.rs index f333841..151033b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,26 +1,17 @@ -pub mod prelude { - pub use camino::{Utf8Path, Utf8PathBuf}; - pub use cargo_metadata::Metadata; - pub use compact_str::CompactString as XString; - pub use eyre::{Context, Result}; - pub use indexmap::IndexMap; - pub use jiff::Timestamp; -} - #[macro_use] extern crate eyre; #[macro_use] extern crate tracing; +use plugin::prelude::*; + pub mod crates_io; pub mod database; -pub mod logger; pub mod nextest; pub mod repo; pub const BASE: &str = "tmp"; -use prelude::*; use std::fs; pub fn write_json(path: &Utf8Path, val: &T) -> Result<()> { diff --git a/src/logger.rs b/src/logger.rs deleted file mode 100644 index bab2524..0000000 --- a/src/logger.rs +++ /dev/null @@ -1,38 +0,0 @@ -use tracing_subscriber::{fmt, prelude::*, registry, EnvFilter}; - -pub fn init() { - let fmt_layer = fmt::layer(); - let env_layer = EnvFilter::from_default_env(); - let error_layer = tracing_error::ErrorLayer::default(); - - if let Err(err) = registry() - .with(fmt_layer) - .with(env_layer) - .with(error_layer) - .try_init() - { - eprintln!("Logger already init: {err}"); - }; - - color_eyre::install().unwrap(); -} - -#[cfg(test)] -#[allow(dead_code)] -pub fn test_init(log_level: Option<&str>, log_file: &str) { - let is_file = std::env::var("LOG_FILE").is_ok(); - let filter = log_level - .and_then(|s| s.parse().ok()) - .unwrap_or_else(EnvFilter::from_default_env); - let fmt = fmt().with_env_filter(filter).without_time(); - let init = if is_file { - fmt.with_writer(std::fs::File::create(log_file).unwrap()) - .with_ansi(false) - .try_init() - } else { - fmt.try_init() - }; - if let Err(err) = init { - eprintln!("Logger already init: {err}"); - }; -} diff --git a/src/main.rs b/src/main.rs index bc93f7d..ff07aaa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ -use os_checker_plugin_cargo::{prelude::*, *}; +use os_checker_plugin_cargo::{repo, repos, write_json, BASE}; +use plugin::{logger, prelude::*}; #[macro_use] extern crate tracing; diff --git a/src/nextest/mod.rs b/src/nextest/mod.rs index 82e75e5..144fcb5 100644 --- a/src/nextest/mod.rs +++ b/src/nextest/mod.rs @@ -1,6 +1,6 @@ //! Ref: https://github.com/nextest-rs/nextest/blob/cb67e450e0fa2803f0089ffc9189c34ecd355f13/nextest-runner/src/reporter/structured/libtest.rs#L116 -use crate::prelude::*; use indexmap::Equivalent; +use plugin::prelude::*; use serde::{Deserialize, Serialize}; use std::hash::Hash; diff --git a/src/repo/mod.rs b/src/repo/mod.rs index 521693b..b30388e 100644 --- a/src/repo/mod.rs +++ b/src/repo/mod.rs @@ -1,7 +1,8 @@ -use crate::{crates_io::IndexFile, database::diag_total_count, prelude::*}; +use crate::{crates_io::IndexFile, database::diag_total_count}; use cargo_metadata::Package; use eyre::ContextCompat; use output::Output; +use plugin::prelude::*; use std::sync::LazyLock; use testcases::PkgTests; diff --git a/src/repo/os_checker.rs b/src/repo/os_checker.rs index d510413..4b558b3 100644 --- a/src/repo/os_checker.rs +++ b/src/repo/os_checker.rs @@ -1,7 +1,6 @@ use super::local_base_dir; -use crate::prelude::*; -use duct::cmd; use os_checker_types::layout::ListTargets; +use plugin::prelude::*; pub type PkgTargets = IndexMap>; diff --git a/src/repo/output.rs b/src/repo/output.rs index 561e1e6..053e968 100644 --- a/src/repo/output.rs +++ b/src/repo/output.rs @@ -1,5 +1,6 @@ use super::testcases::TestCases; use cargo_metadata::Package; +use plugin::prelude::*; use serde::Serialize; #[derive(Debug, Serialize)] diff --git a/src/repo/testcases.rs b/src/repo/testcases.rs index 031cc09..8e1d044 100644 --- a/src/repo/testcases.rs +++ b/src/repo/testcases.rs @@ -1,9 +1,6 @@ -use crate::{ - nextest::{run_testcases, Event, Report}, - prelude::*, -}; +use crate::nextest::{run_testcases, Event, Report}; use nextest_metadata::{RustTestSuiteSummary, TestListSummary}; -use serde::Serialize; +use plugin::prelude::*; fn test_list(dir: &Utf8Path) -> Result { let mut command = nextest_metadata::ListCommand::new();