Improve error handling in commands

Cobra, the CLI commander in use in Hugo, has some long awaited improvements in the error handling department.
This enables a more centralized error handling approach.

This commit introduces that by changing all the command funcs to `RunE`:

* The core part of the error logging, usage logging and `os.Exit(-1)` is now performed in one place and that one place only.
* The usage text is now only shown on invalid arguments etc. (user errors)

Fixes #1502
This commit is contained in:
Bjørn Erik Pedersen 2015-12-02 11:42:53 +01:00 committed by Anthony Fok
parent 6959b7fa80
commit 3f0f7eed68
17 changed files with 219 additions and 155 deletions

View file

@ -18,7 +18,7 @@ var genmanCmd = &cobra.Command{
command-line interface. By default, it creates the man page files
in the "man" directory under the current directory.`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
header := &cobra.GenManHeader{
Section: "1",
Manual: "Hugo Manual",
@ -37,6 +37,8 @@ in the "man" directory under the current directory.`,
cmd.Root().GenManTree(header, genmandir)
jww.FEEDBACK.Println("Done.")
return nil
},
}