mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
feat(shared): add opt-in diagnostics client with compile-time kill switch
Ship client-side telemetry, crash capture, and bug-report assembly behind a user opt-in, with NoOp transport until Cloudflare is wired. Builds can set vnidrop.diagnostics.included=false to omit the Share-diagnostics UI and disable the telemetry/crash auto-upload stack while keeping bug reports.
This commit is contained in:
@@ -37,6 +37,39 @@ plugins {
|
||||
alias(libs.plugins.kotlinAtomicfu)
|
||||
}
|
||||
|
||||
// Compile-time switch (gradle.properties or -Pvnidrop.diagnostics.included=false).
|
||||
// false: no Share-diagnostics toggle, no telemetry/crash auto-upload stack.
|
||||
val diagnosticsIncluded: Boolean =
|
||||
(findProperty("vnidrop.diagnostics.included") as String?)?.toBooleanStrictOrNull() ?: true
|
||||
|
||||
val diagnosticsBuildConfigDir = layout.buildDirectory.dir("generated/diagnostics/commonMain/kotlin")
|
||||
val generateDiagnosticsBuildConfig by tasks.registering {
|
||||
group = "build"
|
||||
description = "Generates DiagnosticsBuildConfig from vnidrop.diagnostics.included"
|
||||
val outputDir = diagnosticsBuildConfigDir
|
||||
val included = diagnosticsIncluded
|
||||
inputs.property("vnidrop.diagnostics.included", included)
|
||||
outputs.dir(outputDir)
|
||||
doLast {
|
||||
val packageDir = outputDir.get().asFile.resolve("com/vnidrop/app/diagnostics")
|
||||
packageDir.mkdirs()
|
||||
packageDir.resolve("DiagnosticsBuildConfig.kt").writeText(
|
||||
"""
|
||||
|package com.vnidrop.app.diagnostics
|
||||
|
|
||||
|/**
|
||||
| * Generated by shared/build.gradle.kts.
|
||||
| * Override with `-Pvnidrop.diagnostics.included=false` or gradle.properties.
|
||||
| */
|
||||
|object DiagnosticsBuildConfig {
|
||||
| const val INCLUDED: Boolean = $included
|
||||
|}
|
||||
|
|
||||
""".trimMargin(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
kotlin {
|
||||
if (GobleyHost.current.platform == GobleyHost.Platform.MacOS) {
|
||||
listOf(
|
||||
@@ -59,6 +92,9 @@ kotlin {
|
||||
jvm()
|
||||
|
||||
sourceSets {
|
||||
commonMain {
|
||||
kotlin.srcDir(files(diagnosticsBuildConfigDir).builtBy(generateDiagnosticsBuildConfig))
|
||||
}
|
||||
androidMain.dependencies {
|
||||
implementation(libs.androidx.activity.compose)
|
||||
implementation(libs.androidx.core.ktx)
|
||||
|
||||
Reference in New Issue
Block a user