aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-05-12 17:55:11 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-05-12 17:55:11 +0200
commit2a3cfd7077ec5e8d2888dcf79c47f86056dc6cff (patch)
treea64cbcfa7304bffbce91a5330d3ff4bd4dc492a5
parent563f1a3a3c2db5eb595ae2f9e1c78b1e357cc25a (diff)
kdev: make config file optional, fail fast on missing keywords
.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 <noreply@anthropic.com>
-rw-r--r--cmd/kdev/main.go7
1 files changed, 6 insertions, 1 deletions
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 != "" {