blob: f168b2715368d8d68ddf595a3653c419e6608186 (
plain) (
blame)
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
|
use serde::Deserialize;
use std::fs;
use std::path::Path;
#[derive(Deserialize)]
pub struct Config {
pub update: Option<String>,
pub build: Option<String>,
pub install: Option<String>,
pub dependencies: Option<Vec<String>>,
}
impl Config {
pub fn new<P: AsRef<Path>>(filepath: P) -> Option<Self> {
let contents = match fs::read_to_string(filepath) {
Ok(c) => c,
Err(_) => {
eprintln!("no package config found");
return None;
}
};
let config: Config = toml::from_str(&contents).expect("failed to parse config");
Some(config)
}
}
|