pub mod branch_behind;
pub mod git_phase_dirty;
pub mod publish_not_adjudicated;
pub mod target_pressure;
pub mod toolchain_mismatch;
pub mod trybuild_changed;
pub use branch_behind::BranchBehindConfig;
pub use git_phase_dirty::GitPhaseDirtyConfig;
pub use publish_not_adjudicated::PublishNotAdjudicatedConfig;
pub use target_pressure::TargetPressureConfig;
pub use toolchain_mismatch::{get_current_version, ToolchainMismatchConfig};
pub use trybuild_changed::TrybuildChangedConfig;
pub mod evidence_stale {
#[derive(Debug, Clone)]
pub struct EvidenceStaleConfig {
pub evidence_dir: String,
pub max_age_days: u32,
}
impl Default for EvidenceStaleConfig {
fn default() -> Self {
Self { evidence_dir: ".evidence".to_string(), max_age_days: 30 }
}
}
pub fn check_stale(config: &EvidenceStaleConfig) -> bool {
let path = std::path::Path::new(&config.evidence_dir);
if !path.exists() {
return false;
}
true
}
pub fn execute(config: &EvidenceStaleConfig, apply: bool) -> Result<(), String> {
if !check_stale(config) {
return Ok(());
}
if apply {
eprintln!("[EvidenceStalyPolicy] Cleaning stale evidence...");
Ok(())
} else {
eprintln!("[EvidenceStalyPolicy] Would clean stale evidence");
Ok(())
}
}
}
pub use evidence_stale::EvidenceStaleConfig;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_all_policies_export() {
let _target = TargetPressureConfig::default();
let _toolchain = ToolchainMismatchConfig::default();
let _trybuild = TrybuildChangedConfig::default();
let _branch = BranchBehindConfig::default();
let _publish = PublishNotAdjudicatedConfig::default();
let _dirty = GitPhaseDirtyConfig::default();
let _evidence = EvidenceStaleConfig::default();
}
}