feat(infra): auto-commit con 56 cambios

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-21 14:22:55 +02:00
parent c1071a82b3
commit 32c7336bf6
56 changed files with 5307 additions and 100 deletions
+40
View File
@@ -0,0 +1,40 @@
package infra
import (
"fmt"
"os/exec"
)
// NotifyDesktop sends a desktop notification on Linux via the `notify-send`
// binary (libnotify). It is impure: it shells out to an external program.
//
// Degradation is intentional and silent: if `notify-send` is not on the PATH,
// the function returns nil without error. A machine without a notification
// server is not a failure condition for the caller — the notification is simply
// skipped. Only a real execution failure of an existing `notify-send` is
// returned (wrapped with context).
//
// When `notify-send` is present it runs:
//
// notify-send --app-name=fleetview --urgency=normal -- <title> <body>
//
// The `--` separator guarantees that a title or body starting with "-" is
// treated as positional text, not as a flag. An empty title falls back to a
// sensible default; an empty body is accepted by notify-send as-is.
func NotifyDesktop(title, body string) error {
bin, err := exec.LookPath("notify-send")
if err != nil {
// No notification server / binary on this machine: skip silently.
return nil
}
if title == "" {
title = "Notificación"
}
cmd := exec.Command(bin, "--app-name=fleetview", "--urgency=normal", "--", title, body)
if err := cmd.Run(); err != nil {
return fmt.Errorf("notify-send failed: %w", err)
}
return nil
}