commit 4526d05aef6b3d58d3cc069447bc6c180528910c Author: Colin Date: Tue Apr 16 12:28:32 2024 -0400 go-glitch diff --git a/go-glitch b/go-glitch new file mode 100755 index 0000000..421132f Binary files /dev/null and b/go-glitch differ diff --git a/go-glitch.go b/go-glitch.go new file mode 100644 index 0000000..1d0a9ad --- /dev/null +++ b/go-glitch.go @@ -0,0 +1,53 @@ +package main + +import ( + "fmt" + "os" + "time" + + "github.com/getsentry/sentry-go" +) + +func main() { + // Check for the right number of command line arguments + if len(os.Args) != 2 { + fmt.Println("Usage: ./go-glitch \"Your log message here\"") + os.Exit(1) + } + + logMessage := os.Args[1] + + dsn := os.Getenv("SENTRY_DSN") + if dsn == "" { + fmt.Println("Error: SENTRY_DSN environment variable is not set.") + os.Exit(1) + } + + // Initialize Sentry with the DSN + err := sentry.Init(sentry.ClientOptions{ + Dsn: dsn, + }) + if err != nil { + fmt.Printf("Error initializing Sentry: %s\n", err) + os.Exit(1) + } + + // Defer a function to flush Sentry's buffer + defer func() { + success := sentry.Flush(5 * time.Second) + if !success { + fmt.Println("Failed to flush Sentry buffer within the expected time.") + } else { + fmt.Println("Sentry buffer flushed successfully.") + } + }() + + // Capture the message and output the event ID + eventID := sentry.CaptureMessage(logMessage) + if eventID != nil { + fmt.Printf("Sent message to Sentry with event ID: %s\n", *eventID) + } else { + fmt.Println("Failed to send message to Sentry.") + } +} + diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..7036b78 --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module go-glitch + +go 1.21.1 + +require ( + github.com/getsentry/sentry-go v0.27.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..121a9cb --- /dev/null +++ b/go.sum @@ -0,0 +1,6 @@ +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=