shithub: hugo

Download patch

ref: 2a4ed1c49259d170a2aa985a603c8a5bed00ff67
parent: 80367ea218d653dd21010695d71ddcaa001873da
author: Bjørn Erik Pedersen <[email protected]>
date: Wed Oct 5 06:20:25 EDT 2016

Add hugo env command

Useful for bug reports.

Fixes #2523

--- /dev/null
+++ b/commands/env.go
@@ -1,0 +1,35 @@
+// Copyright 2016 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package commands
+
+import (
+	"fmt"
+	"runtime"
+
+	"github.com/spf13/cobra"
+)
+
+var envCmd = &cobra.Command{
+	Use:   "env",
+	Short: "Print Hugo version and environment info",
+	Long:  `Print Hugo version and environment info. This is useful in Hugo bug reports.`,
+	RunE: func(cmd *cobra.Command, args []string) error {
+		printHugoVersion()
+		fmt.Printf("GOOS=%q\n", runtime.GOOS)
+		fmt.Printf("GOARCH=%q\n", runtime.GOARCH)
+		fmt.Printf("GOVERSION=%q\n", runtime.Version())
+
+		return nil
+	},
+}
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -185,6 +185,7 @@
 func AddCommands() {
 	HugoCmd.AddCommand(serverCmd)
 	HugoCmd.AddCommand(versionCmd)
+	HugoCmd.AddCommand(envCmd)
 	HugoCmd.AddCommand(configCmd)
 	HugoCmd.AddCommand(checkCmd)
 	HugoCmd.AddCommand(benchmarkCmd)
--- a/commands/version.go
+++ b/commands/version.go
@@ -31,19 +31,23 @@
 	Short: "Print the version number of Hugo",
 	Long:  `All software has versions. This is Hugo's.`,
 	RunE: func(cmd *cobra.Command, args []string) error {
-		if hugolib.BuildDate == "" {
-			setBuildDate() // set the build date from executable's mdate
-		} else {
-			formatBuildDate() // format the compile time
-		}
-		if hugolib.CommitHash == "" {
-			fmt.Printf("Hugo Static Site Generator v%s BuildDate: %s\n", helpers.HugoVersion(), hugolib.BuildDate)
-		} else {
-			fmt.Printf("Hugo Static Site Generator v%s-%s BuildDate: %s\n", helpers.HugoVersion(), strings.ToUpper(hugolib.CommitHash), hugolib.BuildDate)
-		}
+		printHugoVersion()
 
 		return nil
 	},
+}
+
+func printHugoVersion() {
+	if hugolib.BuildDate == "" {
+		setBuildDate() // set the build date from executable's mdate
+	} else {
+		formatBuildDate() // format the compile time
+	}
+	if hugolib.CommitHash == "" {
+		fmt.Printf("Hugo Static Site Generator v%s BuildDate: %s\n", helpers.HugoVersion(), hugolib.BuildDate)
+	} else {
+		fmt.Printf("Hugo Static Site Generator v%s-%s BuildDate: %s\n", helpers.HugoVersion(), strings.ToUpper(hugolib.CommitHash), hugolib.BuildDate)
+	}
 }
 
 // setBuildDate checks the ModTime of the Hugo executable and returns it as a