Collect installation information (#390)

This commit is contained in:
Fedor Korotkov 2023-02-02 06:12:28 -05:00 committed by GitHub
parent 41af674a88
commit ecc5de18be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 0 deletions

View File

@ -39,10 +39,15 @@ brews:
name: homebrew-cli
caveats: See the GitHub repository for more information
homepage: https://github.com/cirruslabs/tart
license: "AGPL-3.0"
description: Run macOS VMs on Apple Silicon
skip_upload: auto
dependencies:
- "cirruslabs/cli/softnet"
post_install: |
ENV["SENTRY_DSN"] = "https://606fab64ced94f0991109ac5467e23da@o4504250314522624.ingest.sentry.io/4504606552424448"
system "#{bin}/tart report-installation"
ENV.delete("SENTRY_DSN")
custom_block: |
depends_on :macos => :monterey

View File

@ -0,0 +1,25 @@
import ArgumentParser
import Foundation
import Sentry
struct ReportInstallation: AsyncParsableCommand {
static var configuration = CommandConfiguration(
commandName: "report-installation",
abstract: "Send installation event to Sentry if configured",
discussion: """
Reports macOS version and device model for analytics purposes.
Helps Cirrus Labs team to prioritize testing on most popular devices.
""",
shouldDisplay: false
)
func run() async throws {
let installationEvent = Event()
installationEvent.message = SentryMessage(formatted: "installed")
installationEvent.level = SentryLevel.info
installationEvent.user = nil
installationEvent.stacktrace = nil
let id = SentrySDK.capture(event: installationEvent)
print("Captured installation event #\(id)!")
}
}

View File

@ -33,6 +33,7 @@ struct Root: AsyncParsableCommand {
Rename.self,
Stop.self,
Delete.self,
ReportInstallation.self,
])
public static func main() async throws {