53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package version
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime"
|
|
|
|
"github.com/hyperledger/fabric/common/metadata"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// Program name
|
|
const ProgramName = "peer"
|
|
|
|
// Cmd returns the Cobra Command for Version
|
|
func Cmd() *cobra.Command {
|
|
return cobraCommand
|
|
}
|
|
|
|
var cobraCommand = &cobra.Command{
|
|
Use: "version",
|
|
Short: "Print fabric peer version.",
|
|
Long: `Print current version of the fabric peer server.`,
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
if len(args) != 0 {
|
|
return fmt.Errorf("trailing args detected")
|
|
}
|
|
// Parsing of the command line is done so silence cmd usage
|
|
cmd.SilenceUsage = true
|
|
fmt.Print(GetInfo())
|
|
return nil
|
|
},
|
|
}
|
|
|
|
// GetInfo returns version information for the peer
|
|
func GetInfo() string {
|
|
ccinfo := fmt.Sprintf(" Base Docker Label: %s\n"+
|
|
" Docker Namespace: %s\n",
|
|
metadata.BaseDockerLabel,
|
|
metadata.DockerNamespace)
|
|
|
|
return fmt.Sprintf("%s:\n Version: %s\n Commit SHA: %s\n Go version: %s\n"+
|
|
" OS/Arch: %s\n"+
|
|
" Chaincode:\n%s\n",
|
|
ProgramName, metadata.Version, metadata.CommitSHA, runtime.Version(),
|
|
fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH), ccinfo)
|
|
}
|