@@ -86,7 +86,6 @@ crush run --continue "Follow up on your last response"
}
event.SetNonInteractive(true)
- event.AppInitialized()
switch {
case sessionID != "":
@@ -102,6 +101,8 @@ crush run --continue "Follow up on your last response"
}
defer cleanup()
+ event.AppInitialized()
+
if sessionID != "" {
sess, err := resolveSessionByID(ctx, c, ws.ID, sessionID)
if err != nil {
@@ -127,6 +128,8 @@ crush run --continue "Follow up on your last response"
}
defer cleanup()
+ event.AppInitialized()
+
if !ws.Config().IsConfigured() {
return fmt.Errorf("no providers configured - please run 'crush' to set up a provider interactively")
}
@@ -107,13 +107,16 @@ func sessionSetup(cmd *cobra.Command) (context.Context, *sessionServices, func()
dataDir, _ := cmd.Flags().GetString("data-dir")
ctx := cmd.Context()
+ cfg, err := config.Init("", dataDir, false)
+ if err != nil {
+ return nil, nil, nil, fmt.Errorf("failed to initialize config: %w", err)
+ }
if dataDir == "" {
- cfg, err := config.Init("", "", false)
- if err != nil {
- return nil, nil, nil, fmt.Errorf("failed to initialize config: %w", err)
- }
dataDir = cfg.Config().Options.DataDirectory
}
+ if shouldEnableMetrics(cfg.Config()) {
+ event.Init()
+ }
conn, err := db.Connect(ctx, dataDir)
if err != nil {
@@ -130,7 +133,6 @@ func sessionSetup(cmd *cobra.Command) (context.Context, *sessionServices, func()
func runSessionList(cmd *cobra.Command, _ []string) error {
event.SetNonInteractive(true)
- event.SessionListed(sessionListJSON)
ctx, svc, cleanup, err := sessionSetup(cmd)
if err != nil {
@@ -138,6 +140,8 @@ func runSessionList(cmd *cobra.Command, _ []string) error {
}
defer cleanup()
+ event.SessionListed(sessionListJSON)
+
list, err := svc.sessions.List(ctx)
if err != nil {
return fmt.Errorf("failed to list sessions: %w", err)
@@ -253,7 +257,6 @@ func resolveSessionID(ctx context.Context, svc session.Service, id string) (sess
func runSessionShow(cmd *cobra.Command, args []string) error {
event.SetNonInteractive(true)
- event.SessionShown(sessionShowJSON)
ctx, svc, cleanup, err := sessionSetup(cmd)
if err != nil {
@@ -261,6 +264,8 @@ func runSessionShow(cmd *cobra.Command, args []string) error {
}
defer cleanup()
+ event.SessionShown(sessionShowJSON)
+
sess, err := resolveSessionID(ctx, svc.sessions, args[0])
if err != nil {
return err
@@ -280,7 +285,6 @@ func runSessionShow(cmd *cobra.Command, args []string) error {
func runSessionDelete(cmd *cobra.Command, args []string) error {
event.SetNonInteractive(true)
- event.SessionDeletedCommand(sessionDeleteJSON)
ctx, svc, cleanup, err := sessionSetup(cmd)
if err != nil {
@@ -288,6 +292,8 @@ func runSessionDelete(cmd *cobra.Command, args []string) error {
}
defer cleanup()
+ event.SessionDeletedCommand(sessionDeleteJSON)
+
sess, err := resolveSessionID(ctx, svc.sessions, args[0])
if err != nil {
return err
@@ -315,7 +321,6 @@ func runSessionDelete(cmd *cobra.Command, args []string) error {
func runSessionRename(cmd *cobra.Command, args []string) error {
event.SetNonInteractive(true)
- event.SessionRenamed(sessionRenameJSON)
ctx, svc, cleanup, err := sessionSetup(cmd)
if err != nil {
@@ -323,6 +328,8 @@ func runSessionRename(cmd *cobra.Command, args []string) error {
}
defer cleanup()
+ event.SessionRenamed(sessionRenameJSON)
+
sess, err := resolveSessionID(ctx, svc.sessions, args[0])
if err != nil {
return err
@@ -351,7 +358,6 @@ func runSessionRename(cmd *cobra.Command, args []string) error {
func runSessionLast(cmd *cobra.Command, _ []string) error {
event.SetNonInteractive(true)
- event.SessionLastShown(sessionLastJSON)
ctx, svc, cleanup, err := sessionSetup(cmd)
if err != nil {
@@ -359,6 +365,8 @@ func runSessionLast(cmd *cobra.Command, _ []string) error {
}
defer cleanup()
+ event.SessionLastShown(sessionLastJSON)
+
list, err := svc.sessions.List(ctx)
if err != nil {
return fmt.Errorf("failed to list sessions: %w", err)
@@ -121,18 +121,21 @@ type HourDayHeatmapPt struct {
}
func runStats(cmd *cobra.Command, _ []string) error {
- event.StatsViewed()
-
dataDir, _ := cmd.Flags().GetString("data-dir")
ctx := cmd.Context()
+ cfg, err := config.Init("", dataDir, false)
+ if err != nil {
+ return fmt.Errorf("failed to initialize config: %w", err)
+ }
if dataDir == "" {
- cfg, err := config.Init("", "", false)
- if err != nil {
- return fmt.Errorf("failed to initialize config: %w", err)
- }
dataDir = cfg.Config().Options.DataDirectory
}
+ if shouldEnableMetrics(cfg.Config()) {
+ event.Init()
+ }
+
+ event.StatsViewed()
conn, err := db.Connect(ctx, dataDir)
if err != nil {