github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/version/command.go (about)

     1  package version
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  
     7  	"github.com/spf13/cobra"
     8  	"github.com/spf13/viper"
     9  	"gopkg.in/yaml.v2"
    10  
    11  	"github.com/fibonacci-chain/fbc/libs/tendermint/libs/cli"
    12  )
    13  
    14  const flagLong = "long"
    15  
    16  func init() {
    17  	Cmd.Flags().Bool(flagLong, false, "Print long version information")
    18  }
    19  
    20  // Cmd prints out the application's version information passed via build flags.
    21  var Cmd = &cobra.Command{
    22  	Use:   "version",
    23  	Short: "Print the app version",
    24  	RunE: func(_ *cobra.Command, _ []string) error {
    25  		verInfo := NewInfo()
    26  
    27  		if !viper.GetBool(flagLong) {
    28  			fmt.Println(verInfo.Version)
    29  			return nil
    30  		}
    31  
    32  		var bz []byte
    33  		var err error
    34  
    35  		switch viper.GetString(cli.OutputFlag) {
    36  		case "json":
    37  			bz, err = json.Marshal(verInfo)
    38  		default:
    39  			bz, err = yaml.Marshal(&verInfo)
    40  		}
    41  
    42  		if err != nil {
    43  			return err
    44  		}
    45  
    46  		_, err = fmt.Println(string(bz))
    47  		return err
    48  	},
    49  }