37 lines
683 B
Go
37 lines
683 B
Go
package hugo
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
// Run executes an external command
|
|
func Run(command string, args []string, path string) error {
|
|
cmd := exec.Command(command, args...)
|
|
cmd.Dir = path
|
|
cmd.Stdout = os.Stderr
|
|
cmd.Stderr = os.Stderr
|
|
return cmd.Run()
|
|
}
|
|
|
|
// RunHugo is used to run the static website generator
|
|
func RunHugo(c *Config, force bool) {
|
|
os.RemoveAll(c.Public)
|
|
|
|
// Prevent running if watching is enabled
|
|
if b, pos := StringInSlice("--watch", c.Args); b && !force {
|
|
if len(c.Args) > pos && c.Args[pos+1] != "false" {
|
|
return
|
|
}
|
|
|
|
if len(c.Args) == pos+1 {
|
|
return
|
|
}
|
|
}
|
|
|
|
if err := Run(c.Hugo, c.Args, c.Root); err != nil {
|
|
log.Panic(err)
|
|
}
|
|
}
|