Skip to content

Commit

Permalink
add MAESTRO_CLI_NO_ANALYTICS flag
Browse files Browse the repository at this point in the history
  • Loading branch information
bartekpacia committed Jul 30, 2024
1 parent 7a92d46 commit a27be00
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
17 changes: 16 additions & 1 deletion maestro-cli/src/main/java/maestro/cli/analytics/Analytics.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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] ")
Expand All @@ -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
}

Expand Down
10 changes: 6 additions & 4 deletions maestro-cli/src/main/java/maestro/cli/util/CiUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
}

0 comments on commit a27be00

Please sign in to comment.