diff --git a/meilisearch-http/src/main.rs b/meilisearch-http/src/main.rs index 27c310f3a..955321a6f 100644 --- a/meilisearch-http/src/main.rs +++ b/meilisearch-http/src/main.rs @@ -50,7 +50,7 @@ async fn main() -> anyhow::Result<()> { let auth_controller = AuthController::new(&opt.db_path, &opt.master_key)?; #[cfg(all(not(debug_assertions), feature = "analytics"))] - let (analytics, user) = if !opt.no_analytics { + let (analytics, user) = if opt.analytics() { analytics::SegmentAnalytics::new(&opt, &meilisearch).await } else { analytics::MockAnalytics::new(&opt) @@ -125,9 +125,7 @@ pub fn print_launch_resume(opt: &Opt, user: &str) { #[cfg(all(not(debug_assertions), feature = "analytics"))] { - if opt.no_analytics { - eprintln!("Anonymous telemetry:\t\"Disabled\""); - } else { + if opt.analytics() { eprintln!( " Thank you for using MeiliSearch! @@ -136,6 +134,8 @@ We collect anonymized analytics to improve our product and your experience. To l Anonymous telemetry:\t\"Enabled\"" ); + } else { + eprintln!("Anonymous telemetry:\t\"Disabled\""); } } diff --git a/meilisearch-http/src/option.rs b/meilisearch-http/src/option.rs index d6b2a39dd..c6f783074 100644 --- a/meilisearch-http/src/option.rs +++ b/meilisearch-http/src/option.rs @@ -38,7 +38,7 @@ pub struct Opt { /// Do not send analytics to Meili. #[cfg(all(not(debug_assertions), feature = "analytics"))] #[structopt(long, env = "MEILI_NO_ANALYTICS")] - pub no_analytics: bool, + pub no_analytics: Option>, /// The maximum size, in bytes, of the main lmdb database directory #[structopt(long, env = "MEILI_MAX_INDEX_SIZE", default_value = "100 GiB")] @@ -129,6 +129,16 @@ pub struct Opt { } impl Opt { + /// Wether analytics should be enabled or not. + #[cfg(all(not(debug_assertions), feature = "analytics"))] + pub fn analytics(&self) -> bool { + match self.no_analytics { + None => true, + Some(None) => false, + Some(Some(disabled)) => !disabled, + } + } + pub fn get_ssl_config(&self) -> anyhow::Result> { if let (Some(cert_path), Some(key_path)) = (&self.ssl_cert_path, &self.ssl_key_path) { let client_auth = match &self.ssl_auth_path {