before publish and after publish commands
parent
76c91576cf
commit
af8dbc2180
16
hugo.go
16
hugo.go
|
@ -101,7 +101,23 @@ func (h Hugo) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) {
|
|||
}
|
||||
|
||||
if r.Header.Get("Regenerate") == "true" {
|
||||
if err = h.Config.BeforePublish(
|
||||
r,
|
||||
&h.FileManager.Configs[0],
|
||||
h.FileManager.Configs[0].User,
|
||||
); err != nil {
|
||||
return http.StatusInternalServerError, err
|
||||
}
|
||||
|
||||
RunHugo(h.Config, false)
|
||||
|
||||
if err = h.Config.AfterPublish(
|
||||
r,
|
||||
&h.FileManager.Configs[0],
|
||||
h.FileManager.Configs[0].User,
|
||||
); err != nil {
|
||||
return http.StatusInternalServerError, err
|
||||
}
|
||||
}
|
||||
|
||||
if r.Header.Get("Schedule") != "" {
|
||||
|
|
24
setup.go
24
setup.go
|
@ -62,13 +62,15 @@ func setup(c *caddy.Controller) error {
|
|||
|
||||
// Config is a configuration for managing a particular hugo website.
|
||||
type Config struct {
|
||||
Public string // Public content path
|
||||
Root string // Hugo files path
|
||||
Hugo string // Hugo executable location
|
||||
Styles string // Admin styles path
|
||||
Args []string // Hugo arguments
|
||||
BaseURL string // BaseURL of admin interface
|
||||
WebDavURL string
|
||||
Public string // Public content path
|
||||
Root string // Hugo files path
|
||||
Hugo string // Hugo executable location
|
||||
Styles string // Admin styles path
|
||||
Args []string // Hugo arguments
|
||||
BaseURL string // BaseURL of admin interface
|
||||
WebDavURL string
|
||||
BeforePublish config.CommandFunc
|
||||
AfterPublish config.CommandFunc
|
||||
}
|
||||
|
||||
// Parse parses the configuration set by the user so it can be
|
||||
|
@ -127,6 +129,14 @@ func parse(c *caddy.Controller, root string) (*Config, *filemanager.FileManager,
|
|||
}
|
||||
|
||||
cfg.Args = append(cfg.Args, "--"+values[0]+"="+value)
|
||||
case "before_publish":
|
||||
if cfg.BeforePublish, err = config.CommandRunner(c); err != nil {
|
||||
return cfg, &filemanager.FileManager{}, err
|
||||
}
|
||||
case "after_publish":
|
||||
if cfg.AfterPublish, err = config.CommandRunner(c); err != nil {
|
||||
return cfg, &filemanager.FileManager{}, err
|
||||
}
|
||||
default:
|
||||
line := "\n\t" + c.Val()
|
||||
|
||||
|
|
Loading…
Reference in New Issue