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