1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::convert::TryFrom;
use std::fs;
use serde::{Deserialize, Serialize};
use super::command::Command;
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "kebab-case")]
pub struct Config {
pub provisions: Vec<Command>,
}
impl TryFrom<&'_ str> for Config {
type Error = anyhow::Error;
fn try_from(config_filename: &str) -> anyhow::Result<Self> {
let config = fs::read_to_string(config_filename)?;
let config: Config = toml::from_str(&config)?;
trace!("{:#?}", &config);
Ok(config)
}
}