use config value for pm path

This commit is contained in:
Robin Olsen
2026-03-10 13:44:59 +01:00
parent e4b6074303
commit 4c826193ee
6 changed files with 12 additions and 17 deletions

View File

@@ -81,19 +81,19 @@ func runStartCmd(cmd *cobra.Command, args []string) error {
case <-ctx.Done(): case <-ctx.Done():
return return
case <-ticker.C: case <-ticker.C:
if err := mongoStorage.SubmitSurveyResponsesCmd(ctx); err != nil { if err := mongoStorage.SubmitSurveyResponsesCmd(ctx, app.Config.AppDir); err != nil {
cmd.Printf("Failed to submit survey responses: %v\n", err) cmd.Printf("Failed to submit survey responses: %v\n", err)
} }
} }
} }
}() }()
if err := mongoStorage.SubmitSurveyResponsesCmd(ctx); err != nil { if err := mongoStorage.SubmitSurveyResponsesCmd(ctx, app.Config.AppDir); err != nil {
cmd.Printf("Failed to submit survey responses: %v\n", err) cmd.Printf("Failed to submit survey responses: %v\n", err)
} }
defer func() { defer func() {
if err := mongoStorage.SubmitSurveyResponsesCmd(context.Background()); err != nil { if err := mongoStorage.SubmitSurveyResponsesCmd(context.Background(), app.Config.AppDir); err != nil {
cmd.Printf("Failed to submit survey responses on shutdown: %v\n", err) cmd.Printf("Failed to submit survey responses on shutdown: %v\n", err)
} }
}() }()

View File

@@ -23,13 +23,13 @@ func New(ctx context.Context, config Config, opts ...Option) (*App, func(), erro
} }
if !config.AutoInit { if !config.AutoInit {
if err := b.initializer.Init(config.BeadsDBPath); err != nil { if err := b.initializer.Init(config.AppDir + "/db.db"); err != nil {
return nil, nil, err return nil, nil, err
} }
} }
if b.issueService == nil { if b.issueService == nil {
sqliteStore, err := beads.NewSQLiteStorage(b.ctx, config.BeadsDBPath) sqliteStore, err := beads.NewSQLiteStorage(b.ctx, config.AppDir+"/db.db")
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }

View File

@@ -38,7 +38,7 @@ func defaultBuilder(ctx context.Context, config Config) *AppBuilder {
} }
func defaultLogger(config Config, lifecycle *Lifecycle) *slog.Logger { func defaultLogger(config Config, lifecycle *Lifecycle) *slog.Logger {
statsDir := filepath.Dir(config.StatisticsStoragePath) statsDir := filepath.Dir(config.AppDir + "/stats.json")
if statsDir == "" { if statsDir == "" {
statsDir = "." statsDir = "."
} }

View File

@@ -29,7 +29,7 @@ var SubmitCmd = &cobra.Command{
defer db.Close() defer db.Close()
if err := db.SubmitSurveyResponsesCmd(cmd.Context()); err != nil { if err := db.SubmitSurveyResponsesCmd(cmd.Context(), app.Config.AppDir); err != nil {
return fmt.Errorf("failed to submit survey responses: %w", err) return fmt.Errorf("failed to submit survey responses: %w", err)
} }

View File

@@ -6,11 +6,11 @@ type Config struct {
DbUri string DbUri string
AutoInit bool AutoInit bool
RootCmd string RootCmd string
AppDir string
WebAddress string WebAddress string
BeadsDBPath string
IssuePrefix string IssuePrefix string
StatisticsStoragePath string
ActionLogger func(string) ActionLogger func(string)
StatisticsStoragePath string
} }
var BaseConfig = Config{ var BaseConfig = Config{
@@ -19,7 +19,7 @@ var BaseConfig = Config{
RootCmd: "pm", RootCmd: "pm",
IssuePrefix: "pm", IssuePrefix: "pm",
WebAddress: ":8080", WebAddress: ":8080",
BeadsDBPath: "./.pm/db.db", AppDir: "./.pm",
StatisticsStoragePath: "./.pm/stats.json", StatisticsStoragePath: "./.pm/stats.json",
} }
@@ -50,11 +50,6 @@ func (c Config) WithWebAddress(webAddress string) Config {
return c return c
} }
func (c Config) WithBeadsDBPath(beadsDBPath string) Config {
c.BeadsDBPath = beadsDBPath
return c
}
func (c Config) WithIssuePrefix(issuePrefix string) Config { func (c Config) WithIssuePrefix(issuePrefix string) Config {
c.IssuePrefix = issuePrefix c.IssuePrefix = issuePrefix
return c return c

View File

@@ -83,8 +83,8 @@ func (s *MongoStorage) Close() error {
return s.client.Disconnect(context.Background()) return s.client.Disconnect(context.Background())
} }
func (s *MongoStorage) SubmitSurveyResponsesCmd(ctx context.Context) error { func (s *MongoStorage) SubmitSurveyResponsesCmd(ctx context.Context, dir string) error {
pmDir := "./.pm/" pmDir := dir
userStatscollection := s.client.Database("Responses").Collection("stats") userStatscollection := s.client.Database("Responses").Collection("stats")
taskMetricsCollection := s.client.Database("Responses").Collection("metrics") taskMetricsCollection := s.client.Database("Responses").Collection("metrics")