commands: Make commands.Execute return a Response object

We have no global `Hugo` object no more (yay!), and there are some external tools that depends on that value.

These tools need to use get that value from `Response.Result`.

Note that `commands.Execute` now also takes the arguments as a string slice. This should also make it easier to use, not having to modify `os.Args`.

This commit also wraps up this particular issue. Phew!

Test coverage in /commands before: 14.4%
Now:  53.5%

Still work to do, now it is at least possible.

Closes #4598
This commit is contained in:
Bjørn Erik Pedersen 2018-04-11 20:17:28 +02:00
parent e7010c1b62
commit 96689a5c31
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
4 changed files with 75 additions and 22 deletions

View file

@ -22,10 +22,10 @@ import (
)
// newHugoCompleteCmd builds the complete set of Hugo CLI commands.
func newHugoCompleteCmd() *cobra.Command {
hugoCmd := newHugoCmd().getCommand()
addAllCommands(hugoCmd)
return hugoCmd
func newHugoCompleteCmd() *hugoCmd {
h := newHugoCmd()
addAllCommands(h.getCommand())
return h
}
// addAllCommands adds child commands to the root command HugoCmd.
@ -81,6 +81,9 @@ func (c *baseCmd) flagsToConfig(cfg config.Provider) {
type hugoCmd struct {
*baseBuilderCmd
// Need to get the sites once built.
c *commandeer
}
func newHugoCmd() *hugoCmd {
@ -107,6 +110,7 @@ Complete documentation is available at http://gohugo.io/.`,
if err != nil {
return err
}
cc.c = c
return c.build()
},