gitee.com/mirrors/Hugo-Go@v0.47.1/commands/version.go (about) 1 // Copyright 2015 The Hugo Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package commands 15 16 import ( 17 "runtime" 18 "strings" 19 20 "github.com/gohugoio/hugo/helpers" 21 "github.com/gohugoio/hugo/hugolib" 22 "github.com/gohugoio/hugo/resource/tocss/scss" 23 "github.com/spf13/cobra" 24 jww "github.com/spf13/jwalterweatherman" 25 ) 26 27 var _ cmder = (*versionCmd)(nil) 28 29 type versionCmd struct { 30 *baseCmd 31 } 32 33 func newVersionCmd() *versionCmd { 34 return &versionCmd{ 35 newBaseCmd(&cobra.Command{ 36 Use: "version", 37 Short: "Print the version number of Hugo", 38 Long: `All software has versions. This is Hugo's.`, 39 RunE: func(cmd *cobra.Command, args []string) error { 40 printHugoVersion() 41 return nil 42 }, 43 }), 44 } 45 } 46 47 func printHugoVersion() { 48 program := "Hugo Static Site Generator" 49 50 version := "v" + helpers.CurrentHugoVersion.String() 51 if hugolib.CommitHash != "" { 52 version += "-" + strings.ToUpper(hugolib.CommitHash) 53 } 54 if scss.Supports() { 55 version += "/extended" 56 } 57 58 osArch := runtime.GOOS + "/" + runtime.GOARCH 59 60 var buildDate string 61 if hugolib.BuildDate != "" { 62 buildDate = hugolib.BuildDate 63 } else { 64 buildDate = "unknown" 65 } 66 67 jww.FEEDBACK.Println(program, version, osArch, "BuildDate:", buildDate) 68 }