feat: mirror can set to none, set to rust when confit is none

This commit is contained in:
2020-11-22 00:01:59 +08:00
parent 940d280e6a
commit 47fb8fef66
5 changed files with 24 additions and 4 deletions

2
Cargo.lock generated
View File

@@ -77,7 +77,7 @@ dependencies = [
[[package]]
name = "dockerbuild"
version = "0.1.1"
version = "0.1.2"
dependencies = [
"rust_util",
"serde",

View File

@@ -1,6 +1,6 @@
[package]
name = "dockerbuild"
version = "0.1.1"
version = "0.1.2"
authors = ["Hatter Jiang <jht5945@gmail.com>"]
edition = "2018"
license = "MIT"

View File

@@ -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

View File

@@ -9,6 +9,15 @@ pub struct DockerBuildConfig {
pub mirror: Option<String>,
}
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<DockerBuildConfig> {
let config = find_docker_build_config_file()?;
success!("Find config file: {:?}", config);

View File

@@ -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();
}