From 2a3cfd7077ec5e8d2888dcf79c47f86056dc6cff Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 12 May 2026 17:55:11 +0200 Subject: kdev: make config file optional, fail fast on missing keywords MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .kdev.yaml is no longer required — missing file is silently ignored. A clear panic is raised if no keywords are configured at startup. Co-Authored-By: Claude Sonnet 4.6 --- cmd/kdev/main.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmd/kdev/main.go b/cmd/kdev/main.go index b9c834e..0b23ffb 100644 --- a/cmd/kdev/main.go +++ b/cmd/kdev/main.go @@ -69,7 +69,11 @@ func initConfig() { viper.AddConfigPath(".") viper.AddConfigPath(repoPath) kcore.Expect(viper.BindPFlags(pflag.CommandLine), "Error binding flags") - kcore.Expect(viper.ReadInConfig(), "Error reading config file") + if err := viper.ReadInConfig(); err != nil { + if _, ok := err.(viper.ConfigFileNotFoundError); !ok { + kcore.Expect(err, "Error reading config file") + } + } if afterStr := viper.GetString("after"); afterStr != "" { after, err = time.Parse(time.DateOnly, viper.GetString("after")) @@ -113,6 +117,7 @@ func initConfig() { func main() { var err error initConfig() + kcore.Assert(len(keywords) > 0, "No keywords configured: set 'keywords' in .kdev.yaml or pass --keywords") records := []Record{} if cpuProfile != "" { -- cgit v1.3