Fix help flags to show root help instead of list help

Previously, 'opal -h', 'opal --help', and 'opal help' would show the
list command help instead of the root command help. This was because
the argument preprocessing logic would rewrite these as 'opal list -h'
before Cobra could handle them.

Now we detect help flags/command before preprocessing and let Cobra
handle them naturally. This ensures:
- 'opal -h' and 'opal --help' show root help
- 'opal help' shows root help
- 'opal help <command>' shows command-specific help
- 'opal <command> -h' still shows command-specific help
- All existing flexible syntax continues to work
This commit is contained in:
2026-01-05 10:27:12 +01:00
parent 94ed5a7daf
commit 4b59b004f1
+10
View File
@@ -48,6 +48,16 @@ It supports filtering, tags, priorities, projects, and recurring tasks.`,
} }
func Execute() error { func Execute() error {
// Check for help flags/command BEFORE preprocessing
// This allows Cobra to handle help naturally for the root command
if len(os.Args) > 1 {
firstArg := os.Args[1]
if firstArg == "-h" || firstArg == "--help" || firstArg == "help" {
// Let Cobra handle help - skip preprocessing
return rootCmd.Execute()
}
}
// Preprocess arguments BEFORE Cobra routing // Preprocess arguments BEFORE Cobra routing
if len(os.Args) > 1 { if len(os.Args) > 1 {
parsed := preprocessArgs(os.Args[1:]) parsed := preprocessArgs(os.Args[1:])