diff --git a/internal/db/entries.go b/internal/db/entries.go index 30f6677..433db42 100644 --- a/internal/db/entries.go +++ b/internal/db/entries.go @@ -81,7 +81,11 @@ func scanEntries(rows *sql.Rows) ([]Entry, error) { if err := rows.Scan(&e.ID, &ts, &e.Method, &e.Host, &e.Path, &e.StatusCode, &e.RequestRaw, &e.ResponseRaw, &flagged); err != nil { return nil, err } - e.Timestamp, _ = time.Parse(time.RFC3339, ts) + var tsErr error + e.Timestamp, tsErr = time.Parse(time.RFC3339, ts) + if tsErr != nil { + log.Printf("db: parse timestamp %q: %v", ts, tsErr) + } e.Flagged = flagged != 0 entries = append(entries, e) } diff --git a/internal/db/replay.go b/internal/db/replay.go index ad25f16..acc5786 100644 --- a/internal/db/replay.go +++ b/internal/db/replay.go @@ -1,6 +1,7 @@ package db import ( + "log" "time" ) @@ -59,7 +60,11 @@ func (d *DB) ListReplayEntries() ([]ReplayEntry, error) { &e.OriginalRaw, &e.RequestRaw, &e.ResponseRaw, &e.StatusCode, &e.ErrorMsg); err != nil { return nil, err } - e.Timestamp, _ = time.Parse(time.RFC3339, ts) + var tsErr error + e.Timestamp, tsErr = time.Parse(time.RFC3339, ts) + if tsErr != nil { + log.Printf("db: parse replay timestamp %q: %v", ts, tsErr) + } entries = append(entries, e) } return entries, rows.Err() diff --git a/internal/plugins/pluginsfile.go b/internal/plugins/pluginsfile.go index ab08218..c2ed1a9 100644 --- a/internal/plugins/pluginsfile.go +++ b/internal/plugins/pluginsfile.go @@ -1,6 +1,7 @@ package plugins import ( + "log" "os" "path/filepath" @@ -76,7 +77,9 @@ func (pf *PluginsFile) register(id string, defaultEnabled bool, configText strin } } pf.data.Plugins[id] = entry - _ = pf.save() + if err := pf.save(); err != nil { + log.Printf("plugin %s: register save: %v", id, err) + } } } diff --git a/internal/ui/app/model.go b/internal/ui/app/model.go index 78cce01..c7c174e 100644 --- a/internal/ui/app/model.go +++ b/internal/ui/app/model.go @@ -1,7 +1,6 @@ package app import ( - "fmt" "log" "os" "path/filepath" @@ -97,8 +96,7 @@ func New(broker *intercept.Broker, name, path string) Model { d, err := db.Open(path) if err != nil { - fmt.Fprintf(os.Stderr, "db: %v\n", err) - os.Exit(1) + log.Fatalf("db: %v", err) } m.database = d broker.SetDB(d) diff --git a/internal/ui/home/update.go b/internal/ui/home/update.go index 76f0c8f..58904d8 100644 --- a/internal/ui/home/update.go +++ b/internal/ui/home/update.go @@ -74,6 +74,7 @@ func (m Model) handleSelection() (tea.Model, tea.Cmd) { case kindTemp: dir := tempDir() if err := os.MkdirAll(dir, 0o750); err != nil { + log.Printf("home: create temp dir: %v", err) return m, nil } initProjectFiles(dir) @@ -117,6 +118,7 @@ func (m Model) updateNaming(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { m.nameInput.Blur() dir := filepath.Join(m.projectDir, name) if err := os.MkdirAll(dir, 0o750); err != nil { + log.Printf("home: create project dir %q: %v", name, err) return m, nil } initProjectFiles(dir) diff --git a/internal/util/editor.go b/internal/util/editor.go index e7b9835..9d1787c 100644 --- a/internal/util/editor.go +++ b/internal/util/editor.go @@ -29,6 +29,7 @@ func resolveEditor() string { func openWithEditor(content string, callback func(string, error) tea.Msg) tea.Cmd { f, err := os.CreateTemp("", "spilltea-*.http") if err != nil { + log.Printf("editor: create temp file: %v", err) return nil } tmpPath := f.Name()