diff --git a/cmd/task/list.go b/cmd/task/list.go index 0a33e702913493df24c01b8217b58a27e7d1b256..6efb9741e1a314976af983c6f600c9181034d687 100644 --- a/cmd/task/list.go +++ b/cmd/task/list.go @@ -106,19 +106,32 @@ func mustGetBoolFlag(cmd *cobra.Command, name string) bool { func resolveAreaFilter(cmd *cobra.Command) (string, error) { areaKey := mustGetStringFlag(cmd, "area") - if areaKey == "" { - return "", nil - } cfg, err := config.Load() if err != nil { + // Config not required if no area flag and we just skip default if errors.Is(err, config.ErrNotFound) { - fmt.Fprintln(cmd.ErrOrStderr(), ui.Error.Render("Config not found; run 'lune init' to configure areas")) + if areaKey != "" { + fmt.Fprintln(cmd.ErrOrStderr(), ui.Error.Render("Config not found; run 'lune init' to configure areas")) + + return "", err + } + + return "", nil } return "", err } + // Use default area if no explicit flag + if areaKey == "" { + areaKey = cfg.Defaults.Area + } + + if areaKey == "" { + return "", nil + } + area := cfg.AreaByKey(areaKey) if area == nil { fmt.Fprintln(cmd.ErrOrStderr(), ui.Error.Render("Unknown area: "+areaKey))