25 lines
1 KiB
Markdown
25 lines
1 KiB
Markdown
# Code Review: CLI Entrypoints
|
|
|
|
## Scope
|
|
- `cmd/musiclink/main.go`
|
|
- `cmd/smoketest/main.go`
|
|
|
|
## Findings
|
|
### ✅ Strengths
|
|
- Clean startup flow: load config → init handler → choose Matrix vs Matterbridge → run with signal cancellation.
|
|
- Matrix mode cleanly isolated; `mxBot.Close()` called after run.
|
|
- Smoke test exercises detector/API/resolver end-to-end with clear output.
|
|
|
|
### ⚠️ Issues / Opportunities
|
|
1. **Matterbridge close on fatal path**
|
|
- If `mbBot.Run` returns a non-canceled error, `log.Fatalf` exits before `mbBot.Close()` runs.
|
|
- Low impact (process exits), but consistent cleanup could be improved by deferring close after construction.
|
|
|
|
2. **Smoke test hard-fails on external API issues**
|
|
- Smoke test exits on any API error (expected), but no retries/backoff.
|
|
- Acceptable for manual runs; document that it depends on idonthavespotify uptime.
|
|
|
|
## Notes
|
|
- Signal handling and shutdown behavior are consistent with a long-running service.
|
|
- No CLI flags for selecting mode beyond config; that matches config-first expectations.
|