From a27be0007376b8e42b2531839571f60bcc77da94 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Tue, 30 Jul 2024 11:21:44 +0200 Subject: [PATCH] add MAESTRO_CLI_NO_ANALYTICS flag --- .../java/maestro/cli/analytics/Analytics.kt | 17 ++++++++++++++++- .../src/main/java/maestro/cli/util/CiUtils.kt | 10 ++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/maestro-cli/src/main/java/maestro/cli/analytics/Analytics.kt b/maestro-cli/src/main/java/maestro/cli/analytics/Analytics.kt index 38ec58ebd9..52b8649d70 100644 --- a/maestro-cli/src/main/java/maestro/cli/analytics/Analytics.kt +++ b/maestro-cli/src/main/java/maestro/cli/analytics/Analytics.kt @@ -34,6 +34,10 @@ object Analytics { private val analyticsStatePath: Path = EnvUtils.xdgStateHome().resolve("analytics.json") private val legacyUuidPath: Path = EnvUtils.legacyMaestroHome().resolve("uuid") + private const val DISABLE_ANALYTICS_ENV_VAR = "MAESTRO_CLI_NO_ANALYTICS" + private val analyticsDisabledWithEnvVar: Boolean + get() = System.getenv(DISABLE_ANALYTICS_ENV_VAR) != null + private val JSON = jacksonObjectMapper().apply { registerModule(JavaTimeModule()) enable(SerializationFeature.INDENT_OUTPUT) @@ -73,6 +77,13 @@ object Analytics { fun maybeAskToEnableAnalytics() { if (hasRunBefore) return + // Fix for https://github.com/mobile-dev-inc/maestro/issues/1846 + if (CiUtils.getCiProvider() != null) { + println("CI detected, analytics was automatically enabled.") + println("To opt out, set $DISABLE_ANALYTICS_ENV_VAR envirnment variabke to any value") + return + } + while (!Thread.interrupted()) { println("Maestro CLI would like to collect anonymous usage data to improve the product.") print("Enable analytics? [Y/n] ") @@ -99,8 +110,12 @@ object Analytics { return } + if (analyticsDisabledWithEnvVar) { + logger.trace("Analytics disabled with env var, not uploading") + } + if (!analyticsState.enabled) { - logger.trace("Analytics disabled, not uploading") + logger.trace("Analytics disabled with config file, not uploading") return } diff --git a/maestro-cli/src/main/java/maestro/cli/util/CiUtils.kt b/maestro-cli/src/main/java/maestro/cli/util/CiUtils.kt index ae40ba5970..788a8833ff 100644 --- a/maestro-cli/src/main/java/maestro/cli/util/CiUtils.kt +++ b/maestro-cli/src/main/java/maestro/cli/util/CiUtils.kt @@ -22,12 +22,14 @@ object CiUtils { return mdevCiEnvVar } - for (ciVar in ciEnvVarMap.entries) { + for (ciEnvVar in ciEnvVarMap.entries) { try { - if (isTruthy(System.getenv(ciVar.key).lowercase())) return ciVar.value - } catch (e: Exception) {} + if (isTruthy(System.getenv(ciEnvVar.key).lowercase())) return ciEnvVar.value + } catch (e: Exception) { + // We don't care + } } return null } -} \ No newline at end of file +}