From 90c55eb187e070ac461160d8e204c580e4a805d3 Mon Sep 17 00:00:00 2001 From: Nandor Galambosi Date: Fri, 31 Jan 2020 17:36:36 +0100 Subject: [PATCH] Publish url can be set in config file, which can be overriden by PUBLISH_URL environment variable --- src/main.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 46d0b93..ca3b59f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -57,6 +57,7 @@ struct Config { base_path: String, remote_api: String, listen_on: String, + publish_url: String, registry_config: GitConfig, poll_intervall: Option, } @@ -295,7 +296,8 @@ fn main() { if !base_dir.exists() { create_dir_all(base_dir.clone()).unwrap(); } - let url: &str = &config.listen_on.clone(); + let url: &str = &std::env::var("PUBLISH_URL").unwrap_or(config.publish_url.clone()); + let listen_on: &str = &config.listen_on.clone(); base_dir.push("index"); let repo = if !base_dir.exists() { let repo = @@ -306,7 +308,7 @@ fn main() { let mut config_file = File::create(config_file_path.clone()).unwrap(); write!( &mut config_file, - "{{\"dl\": \"http://{url}/api/v1/crates\", \"api\": \"http://{url}\"}}", + "{{\"dl\": \"{url}/api/v1/crates\", \"api\": \"{url}\"}}", url = url ) .unwrap(); @@ -388,7 +390,7 @@ fn main() { .unwrap_or_else(|| format!("file://{}", base_dir.to_str().unwrap())) ); - Iron::new(router).http(url).unwrap(); + Iron::new(router).http(listen_on).unwrap(); } fn progress_monitor(progress: git2::Progress) -> bool {