use crate::executor::Executor;
use serde::{Deserialize, Serialize};
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
pub struct Steps {
pub distro: Vec<String>,
pub steps: Vec<String>,
}
impl Steps {
pub fn execute(&self) {
Executor::new().execute_steps(self.steps.clone());
}
pub fn len(&self) -> usize {
self.steps.len()
}
pub fn is_empty(&self) -> bool {
self.steps.is_empty()
}
}
pub fn steps_for_dist(list: Vec<Steps>, distro: &String) -> Option<Steps> {
for steps in list {
for dist in steps.distro.clone() {
if dist.eq(distro) || dist == "*" {
return Some(steps);
}
}
}
None
}