diff --git a/magic-nix-cache/src/flakehub.rs b/magic-nix-cache/src/flakehub.rs index a987f13..a6ec86e 100644 --- a/magic-nix-cache/src/flakehub.rs +++ b/magic-nix-cache/src/flakehub.rs @@ -31,7 +31,7 @@ pub async fn init_cache( flakehub_api_server: &Url, flakehub_api_server_netrc: &Path, flakehub_cache_server: &Url, - flakehub_flake_name: &str, + flakehub_flake_name: Option, store: Arc, ) -> Result { // Parse netrc to get the credentials for api.flakehub.com. @@ -122,10 +122,18 @@ pub async fn init_cache( // Get the cache UUID for this project. let cache_name = { - let url = flakehub_api_server - .join(&format!("project/{}", flakehub_flake_name)) + let mut url = flakehub_api_server + .join("project") .map_err(|_| Error::Config(format!("bad URL '{}'", flakehub_api_server)))?; + if let Some(flakehub_flake_name) = flakehub_flake_name { + if !flakehub_flake_name.is_empty() { + url = flakehub_api_server + .join(&format!("project/{}", flakehub_flake_name)) + .map_err(|_| Error::Config(format!("bad URL '{}'", flakehub_api_server)))?; + } + } + let response = reqwest::Client::new() .get(url.to_owned()) .header("User-Agent", USER_AGENT) diff --git a/magic-nix-cache/src/main.rs b/magic-nix-cache/src/main.rs index 9614bdb..9f94e54 100644 --- a/magic-nix-cache/src/main.rs +++ b/magic-nix-cache/src/main.rs @@ -166,15 +166,7 @@ async fn main_cli() -> Result<()> { let flakehub_api_server_netrc = args .flakehub_api_server_netrc .ok_or_else(|| anyhow!("--flakehub-api-server-netrc is required"))?; - let flakehub_flake_name = args - .flakehub_flake_name - .ok_or_else(|| { - tracing::debug!( - "--flakehub-flake-name was not set, inferring from $GITHUB_REPOSITORY env var" - ); - std::env::var("GITHUB_REPOSITORY") - }) - .map_err(|_| anyhow!("--flakehub-flake-name and $GITHUB_REPOSITORY were both unset"))?; + let flakehub_flake_name = args.flakehub_flake_name; match flakehub::init_cache( &args @@ -182,7 +174,7 @@ async fn main_cli() -> Result<()> { .ok_or_else(|| anyhow!("--flakehub-api-server is required"))?, &flakehub_api_server_netrc, &flakehub_cache_server, - &flakehub_flake_name, + flakehub_flake_name, store.clone(), ) .await