github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/gov/client/cli/parse.go (about)

     1  package cli
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"io/ioutil"
     7  
     8  	"github.com/spf13/viper"
     9  
    10  	govutils "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/gov/client/utils"
    11  )
    12  
    13  func parseSubmitProposalFlags() (*proposal, error) {
    14  	proposal := &proposal{}
    15  	proposalFile := viper.GetString(FlagProposal)
    16  
    17  	if proposalFile == "" {
    18  		proposal.Title = viper.GetString(FlagTitle)
    19  		proposal.Description = viper.GetString(FlagDescription)
    20  		proposal.Type = govutils.NormalizeProposalType(viper.GetString(flagProposalType))
    21  		proposal.Deposit = viper.GetString(FlagDeposit)
    22  		return proposal, nil
    23  	}
    24  
    25  	for _, flag := range ProposalFlags {
    26  		if viper.GetString(flag) != "" {
    27  			return nil, fmt.Errorf("--%s flag provided alongside --proposal, which is a noop", flag)
    28  		}
    29  	}
    30  
    31  	contents, err := ioutil.ReadFile(proposalFile)
    32  	if err != nil {
    33  		return nil, err
    34  	}
    35  
    36  	err = json.Unmarshal(contents, proposal)
    37  	if err != nil {
    38  		return nil, err
    39  	}
    40  
    41  	return proposal, nil
    42  }