summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-10-05 10:20:25 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-10-05 10:20:25 +0200
commit2a4ed1c49259d170a2aa985a603c8a5bed00ff67 (patch)
treecc934fb626f7a1d7e2fb360deac01a9c4e1ea6fb
parent80367ea218d653dd21010695d71ddcaa001873da (diff)
Add hugo env command
Useful for bug reports. Fixes #2523
-rw-r--r--commands/env.go35
-rw-r--r--commands/hugo.go1
-rw-r--r--commands/version.go24
3 files changed, 50 insertions, 10 deletions
diff --git a/commands/env.go b/commands/env.go
new file mode 100644
index 000000000..b6ba3dffb
--- /dev/null
+++ b/commands/env.go
@@ -0,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
+ },
+}
diff --git a/commands/hugo.go b/commands/hugo.go
index fa9872c92..ef6b865e0 100644
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -185,6 +185,7 @@ func Execute() {
func AddCommands() {
HugoCmd.AddCommand(serverCmd)
HugoCmd.AddCommand(versionCmd)
+ HugoCmd.AddCommand(envCmd)
HugoCmd.AddCommand(configCmd)
HugoCmd.AddCommand(checkCmd)
HugoCmd.AddCommand(benchmarkCmd)
diff --git a/commands/version.go b/commands/version.go
index 932005939..d64a6cf6f 100644
--- a/commands/version.go
+++ b/commands/version.go
@@ -31,21 +31,25 @@ var versionCmd = &cobra.Command{
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
// formatted string. This assumes that the executable name is Hugo, if it does
// not exist, an empty string will be returned. This is only called if the