feat: add optional output_path, change default to monitors.conf
This commit is contained in:
@@ -60,7 +60,7 @@ func run(logger *slog.Logger) error {
|
||||
logger.Info("config loaded", "path", configPath, "backend", cfg.Backend)
|
||||
|
||||
// Resolve the backend (auto-detect or explicit).
|
||||
b, err := resolveBackend(cfg.Backend, logger)
|
||||
b, err := resolveBackend(cfg.Backend, cfg.OutputPath, logger)
|
||||
if err != nil {
|
||||
return fmt.Errorf("resolve backend: %w", err)
|
||||
}
|
||||
@@ -86,11 +86,11 @@ func run(logger *slog.Logger) error {
|
||||
// resolveBackend returns the first available backend. When backendName is
|
||||
// "auto", backends are probed in priority order. To add a new backend,
|
||||
// register it in the backends slice below.
|
||||
func resolveBackend(backendName string, logger *slog.Logger) (backend.Backend, error) {
|
||||
func resolveBackend(backendName, outputPath string, logger *slog.Logger) (backend.Backend, error) {
|
||||
// Ordered by priority: preferred backends first.
|
||||
backends := []struct {
|
||||
name string
|
||||
factory func(*slog.Logger) (backend.Backend, error)
|
||||
factory func(*slog.Logger, string) (backend.Backend, error)
|
||||
}{
|
||||
{"hyprland", backend.NewHyprland},
|
||||
// Future: {"sway", backend.NewSway},
|
||||
@@ -99,7 +99,7 @@ func resolveBackend(backendName string, logger *slog.Logger) (backend.Backend, e
|
||||
|
||||
if backendName == "auto" {
|
||||
for _, entry := range backends {
|
||||
b, err := entry.factory(logger)
|
||||
b, err := entry.factory(logger, outputPath)
|
||||
if err == nil {
|
||||
logger.Info("auto-detected backend", "name", b.Name())
|
||||
return b, nil
|
||||
@@ -112,7 +112,7 @@ func resolveBackend(backendName string, logger *slog.Logger) (backend.Backend, e
|
||||
// Explicit backend selection.
|
||||
for _, entry := range backends {
|
||||
if entry.name == backendName {
|
||||
b, err := entry.factory(logger)
|
||||
b, err := entry.factory(logger, outputPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("backend %s: %w", backendName, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user