feat: use config json

This commit is contained in:
2020-11-15 12:40:15 +08:00
parent f6efe6ec59
commit 7f01fc75cb
5 changed files with 74 additions and 30 deletions

View File

@@ -1,6 +1,31 @@
use std::fs;
use std::path::PathBuf;
use serde::{Serialize, Deserialize};
use rust_util::util_file;
#[derive(Serialize, Deserialize)]
pub struct DockerBuildConfig {
image: Option<String>,
pub image: Option<String>,
pub mirror: Option<String>,
}
pub fn load_docker_build_config() -> Option<DockerBuildConfig> {
let config = find_docker_build_config_file()?;
success!("Find config file: {:?}", config);
let config_content = fs::read_to_string(&config).map_err(|e| {
failure!("Read config file: {:?}, failed: {}", config, e);
e
}).ok()?;
serde_json::from_str(&config_content).map_err(|e| {
failure!("Parse config file: {:?}, failed: {}", config, e);
e
}).ok()
}
fn find_docker_build_config_file() -> Option<PathBuf> {
util_file::read_config(None, &vec![
// "dockerbuild.json".into(),
"~/.dockerbuild.json".into(),
"/etc/dockerbuild.json".into(),
])
}