compi 0.5.2

A build system written in Rust.
pub mod analysis;
pub mod config;
pub mod dependency;

pub use analysis::show_task_relationships;
pub use config::load_tasks;
pub use dependency::{get_required_tasks, sort_topologically};

use serde::Deserialize;
use std::path::PathBuf;

#[derive(Debug, Deserialize, Clone)]
pub struct Task {
    #[serde(default)]
    pub id: String,
    pub command: String,
    #[serde(default)]
    pub aliases: Vec<String>,
    #[serde(default)]
    pub dependencies: Vec<String>,
    #[serde(default)]
    pub inputs: Vec<PathBuf>,
    #[serde(default)]
    pub outputs: Vec<PathBuf>,
    #[serde(default)]
    pub auto_remove: bool,
    #[serde(default)]
    pub always_run: bool,
    #[serde(default)]
    pub timeout: Option<String>,
}