pub mod runner;
pub mod store;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use std::{collections::HashMap, path::PathBuf};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum ProcessStatus {
Running,
Stopped,
Errored,
}
impl std::fmt::Display for ProcessStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Running => write!(f, "online"),
Self::Stopped => write!(f, "stopped"),
Self::Errored => write!(f, "errored"),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Process {
pub id: u32,
pub name: String,
pub pid: u32,
pub command: String,
pub cwd: PathBuf,
pub env: HashMap<String, String>,
pub status: ProcessStatus,
pub restarts: u32,
pub max_restarts: u32,
pub started_at: DateTime<Utc>,
pub log_out: PathBuf,
pub log_err: PathBuf,
}