From 8aecbc03bbf31d9388db5574694b6e9d970c8771 Mon Sep 17 00:00:00 2001 From: Silas Davis <silas@monax.io> Date: Fri, 13 Apr 2018 09:21:33 -0400 Subject: [PATCH] Add sepearate-genesis-doc option to CLI for making genesis.json Signed-off-by: Silas Davis <silas@monax.io> --- cmd/burrow/main.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cmd/burrow/main.go b/cmd/burrow/main.go index bacc1ccd..fa383620 100644 --- a/cmd/burrow/main.go +++ b/cmd/burrow/main.go @@ -6,6 +6,8 @@ import ( "os" "strings" + "io/ioutil" + "github.com/hyperledger/burrow/config" "github.com/hyperledger/burrow/config/source" "github.com/hyperledger/burrow/execution" @@ -130,6 +132,8 @@ func main() { genesisDocOpt := cmd.StringOpt("g genesis-doc", "", "GenesisDoc JSON to embed in config") + separateGenesisDoc := cmd.StringOpt("s separate-genesis-doc", "", "Emit a separate genesis doc as JSON") + validatorIndexOpt := cmd.IntOpt("v validator-index", -1, "Validator index (in validators list - GenesisSpec or GenesisDoc) from which to set ValidatorAddress") @@ -147,6 +151,7 @@ func main() { chainNameOpt := cmd.StringOpt("n chain-name", "", "Default chain name") cmd.Spec = "[--keys-url=<keys URL>] [--genesis-spec=<GenesisSpec file> | --genesis-doc=<GenesisDoc file>] " + + "[--separate-genesis-doc=<genesis JSON file>]" + "[--validator-index=<index>] [--chain-name] [--toml-in] [--json-out] " + "[--logging=<logging program>] [--describe-logging] [--debug]" @@ -236,6 +241,20 @@ func main() { conf.GenesisDoc.ChainName = *chainNameOpt } + if *separateGenesisDoc != "" { + if conf.GenesisDoc == nil { + fatalf("Cannot write separate genesis doc since no GenesisDoc/GenesisSpec provided.") + } + genesisDocJSON, err := conf.GenesisDoc.JSONBytes() + if err != nil { + fatalf("Could not form GenesisDoc JSON: %v", err) + } + err = ioutil.WriteFile(*separateGenesisDoc, genesisDocJSON, 0700) + if err != nil { + fatalf("Could not write GenesisDoc JSON: %v", err) + } + conf.GenesisDoc = nil + } if *jsonOutOpt { os.Stdout.WriteString(conf.JSONString()) } else { -- GitLab