diff --git a/cmd/message_input.go b/cmd/message_input.go index 5cbb29c..5cac11f 100644 --- a/cmd/message_input.go +++ b/cmd/message_input.go @@ -106,22 +106,22 @@ func (mi *messageInput) send() { } func (mi *messageInput) editor() { - e := mi.cfg.Editor - if e == "default" { - e = os.Getenv("EDITOR") + editor := mi.cfg.Editor + if editor == "" { + return } - f, err := os.CreateTemp("", tmpFilePattern) + file, err := os.CreateTemp("", tmpFilePattern) if err != nil { slog.Error("failed to create tmp file", "err", err) return } - defer f.Close() - defer os.Remove(f.Name()) + defer file.Close() + defer os.Remove(file.Name()) - _, _ = f.WriteString(mi.GetText()) + _, _ = file.WriteString(mi.GetText()) - cmd := exec.Command(e, f.Name()) + cmd := exec.Command(editor, file.Name()) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr @@ -134,9 +134,9 @@ func (mi *messageInput) editor() { } }) - msg, err := os.ReadFile(f.Name()) + msg, err := os.ReadFile(file.Name()) if err != nil { - slog.Error("failed to read tmp file", "name", f.Name(), "err", err) + slog.Error("failed to read tmp file", "name", file.Name(), "err", err) return } diff --git a/internal/config/config.go b/internal/config/config.go index adaf97f..a1b8061 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -2,6 +2,7 @@ package config import ( _ "embed" + "fmt" "log/slog" "os" "path/filepath" @@ -70,13 +71,13 @@ func DefaultPath() string { return filepath.Join(path, consts.Name, fileName) } -// Reads the configuration file and parses it. +// Load reads the configuration file and parses it. func Load(path string) (*Config, error) { - f, err := os.Open(path) + file, err := os.Open(path) var cfg *Config if err := toml.Unmarshal(defaultCfg, &cfg); err != nil { - return nil, err + return nil, fmt.Errorf("failed to unmarshal default config: %w", err) } if os.IsNotExist(err) { @@ -92,12 +93,12 @@ func Load(path string) (*Config, error) { } if err != nil { - return nil, err + return nil, fmt.Errorf("failed to open config file: %w", err) } - defer f.Close() + defer file.Close() - if _, err := toml.NewDecoder(f).Decode(&cfg); err != nil { - return nil, err + if _, err := toml.NewDecoder(file).Decode(&cfg); err != nil { + return nil, fmt.Errorf("failed to decode config: %w", err) } handleDefaults(cfg) @@ -105,12 +106,18 @@ func Load(path string) (*Config, error) { } func handleDefaults(cfg *Config) { + if cfg.Editor == "default" { + cfg.Editor = os.Getenv("EDITOR") + } + if cfg.Identify.Browser == "default" { cfg.Identify.Browser = consts.Browser } + if cfg.Identify.BrowserVersion == "default" { cfg.Identify.BrowserVersion = consts.BrowserVersion } + if cfg.Identify.UserAgent == "default" { cfg.Identify.UserAgent = consts.UserAgent }