use log::trace; use serde::{Deserialize, Serialize}; use std::fs::File; use std::path::{Path, PathBuf}; #[derive(Debug, Serialize, Deserialize)] #[serde(rename_all = "kebab-case")] pub struct Config { pub worker_image: PathBuf, pub source: PathBuf, pub workspace: Option, pub ansible: serde_yaml::Value, pub build: String, } impl Config { pub fn read(filename: &Path) -> anyhow::Result { trace!("filename={:?}", filename); let file = File::open(filename)?; let config: Config = serde_yaml::from_reader(file)?; Ok(config) } }