From 47fb8fef66e087e5c62240c989f7dacc8daa1502 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 22 Nov 2020 00:01:59 +0800 Subject: [PATCH] feat: mirror can set to none, set to rust when confit is none --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 9 +++++++++ src/config.rs | 9 +++++++++ src/main.rs | 6 ++++-- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e9cf3bb..537eacf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "dockerbuild" -version = "0.1.1" +version = "0.1.2" dependencies = [ "rust_util", "serde", diff --git a/Cargo.toml b/Cargo.toml index 3aea23c..3b604d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dockerbuild" -version = "0.1.1" +version = "0.1.2" authors = ["Hatter Jiang "] edition = "2018" license = "MIT" diff --git a/README.md b/README.md index 86e00db..e4410b0 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,14 @@ Docker build tool, build software using docker +Install: + +```shell +$ cargo install dockerbuild +--OR-- +$ cargo install --git https://git.hatter.ink/hatter/dockerbuild.git +``` + Config file: * `~/.dockerbuild.json` * `/etc/dockerbuild.json` @@ -31,3 +39,4 @@ $ dockerbuild :rustc --version Docker official images: https://hub.docker.com/_/rust + diff --git a/src/config.rs b/src/config.rs index 2d83355..b36843e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -9,6 +9,15 @@ pub struct DockerBuildConfig { pub mirror: Option, } +pub fn load_docker_build_config_or_default() -> DockerBuildConfig { + load_docker_build_config().unwrap_or_else(|| { + DockerBuildConfig { + image: Some("rust".into()), + mirror: None, + } + }) +} + pub fn load_docker_build_config() -> Option { let config = find_docker_build_config_file()?; success!("Find config file: {:?}", config); diff --git a/src/main.rs b/src/main.rs index 72ab3e1..45aa675 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,7 +14,7 @@ pub use docker_util::DockerCmd; fn main() { information!("{} v{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")); - let docker_build_config = config::load_docker_build_config().expect("Read config failed, not found or parse error!"); + let docker_build_config = config::load_docker_build_config_or_default(); let mut args_iter = env::args().skip(1).peekable(); let mut get_docker_image = || { @@ -45,7 +45,9 @@ fn main() { let mut docker_cmd = DockerCmd::new(&docker_image); docker_cmd.add_volumn(&get_final_docker_registry(&docker_image), "/usr/local/cargo/registry"); if let Some(mirror) = &crates_mirror.or(docker_build_config.mirror) { - docker_cmd.mirror(mirror); + if mirror.to_lowercase() != "none" { + docker_cmd.mirror(mirror); + } } docker_cmd.exec(&args).unwrap(); }