diff --git a/commands/hugo.go b/commands/hugo.go index b52e8533..05187f90 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -19,8 +19,8 @@ import ( "github.com/mostafah/fsync" "github.com/spf13/cobra" "github.com/spf13/hugo/hugolib" + "github.com/spf13/hugo/utils" "github.com/spf13/nitro" - "log" "os" "path/filepath" "strings" @@ -36,7 +36,10 @@ var HugoCmd = &cobra.Command{ love by spf13 and friends in Go. Complete documentation is available at http://hugo.spf13.com`, - Run: build, + Run: func(cmd *cobra.Command, args []string) { + InitializeConfig() + build() + }, } var Hugo *cobra.Commander @@ -46,10 +49,7 @@ var Source, Destination, BaseUrl, CfgFile string func Execute() { AddCommands() Hugo := HugoCmd.ToCommander() - err := Hugo.Execute() - if err != nil { - os.Exit(-1) - } + utils.CheckErrExit(Hugo.Execute()) } func AddCommands() { @@ -84,25 +84,16 @@ func InitializeConfig() { } } -func build(cmd *cobra.Command, args []string) { - InitializeConfig() +func build() { + utils.CheckErr(copyStatic(), fmt.Sprintf("Error copying static files to %s", Config.GetAbsPath(Config.PublishDir))) - err := copyStatic() - if err != nil { - log.Fatalf("Error copying static files to %s: %v", Config.GetAbsPath(Config.PublishDir), err) - } - if _, err := buildSite(); err != nil { - fmt.Println(err) - os.Exit(-1) - } + _, e := buildSite() + utils.CheckErrExit(e) if BuildWatch { fmt.Println("Watching for changes in", Config.GetAbsPath(Config.ContentDir)) fmt.Println("Press ctrl+c to stop") - err := NewWatcher(0) - if err != nil { - fmt.Println(err) - } + utils.CheckErr(NewWatcher(0)) } } diff --git a/commands/server.go b/commands/server.go index 9b98d4c7..ce1c5f9e 100644 --- a/commands/server.go +++ b/commands/server.go @@ -45,7 +45,7 @@ func server(cmd *cobra.Command, args []string) { Config.BaseUrl = "http://localhost:" + strconv.Itoa(serverPort) } - build(cmd, args) + build() // Watch runs its own server as part of the routine if serverWatch { diff --git a/utils/utils.go b/utils/utils.go new file mode 100644 index 00000000..641abfeb --- /dev/null +++ b/utils/utils.go @@ -0,0 +1,22 @@ +package utils + +import ( + "log" + "os" +) + +func CheckErr(err error, s ...string) { + if err != nil { + for _, message := range s { + log.Fatalf(message) + } + log.Fatalf("Fatal Error: %v", err) + } +} + +func CheckErrExit(err error, s ...string) { + if err != nil { + CheckErr(err, s...) + os.Exit(-1) + } +}