use clap::ValueEnum;
mod conditions;
#[derive(ValueEnum, Clone)]
pub enum IsCondition {
AllUpToDate,
Populated,
Clean,
Synced,
OnBranch,
}
pub fn run(conditions: Vec<IsCondition>) -> Result<bool, String> {
let mut all_ok = true;
for condition in conditions {
let passed = match condition {
IsCondition::AllUpToDate => conditions::all_up_to_date()?,
IsCondition::Populated => conditions::populated()?,
IsCondition::Clean => conditions::clean()?,
IsCondition::Synced => conditions::synced()?,
IsCondition::OnBranch => conditions::on_branch()?,
};
all_ok = all_ok && passed;
}
Ok(all_ok)
}
#[cfg(test)]
pub(crate) static CWD_MUTEX: std::sync::Mutex<()> = std::sync::Mutex::new(());
#[cfg(test)]
#[path = "mod_tests.rs"]
mod tests;