code.vegaprotocol.io/vega@v0.79.0/cmd/vega/commands/genesis/genesis.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package genesis 17 18 import ( 19 "context" 20 21 "code.vegaprotocol.io/vega/core/config" 22 23 "github.com/jessevdk/go-flags" 24 ) 25 26 type Cmd struct { 27 // Global options 28 config.VegaHomeFlag 29 config.PassphraseFlag 30 31 // Subcommands 32 Generate generateCmd `command:"generate" description:"Generates the genesis file"` 33 Update updateCmd `command:"update" description:"Update the genesis file with the app_state, useful if the genesis generation is not done using \"vega genesis generate\""` 34 LoadCheckpoint loadCheckpointCmd `command:"load_checkpoint" description:"Load the given checkpoint file in the genesis file"` 35 } 36 37 var genesisCmd Cmd 38 39 func Genesis(ctx context.Context, parser *flags.Parser) error { 40 genesisCmd = Cmd{ 41 Generate: generateCmd{ 42 TmHome: "$HOME/.cometbft", 43 }, 44 Update: updateCmd{ 45 TmHome: "$HOME/.cometbft", 46 }, 47 LoadCheckpoint: loadCheckpointCmd{ 48 TmHome: "$HOME/.cometbft", 49 }, 50 } 51 52 desc := "Manage the genesis file" 53 cmd, err := parser.AddCommand("genesis", desc, desc, &genesisCmd) 54 if err != nil { 55 return err 56 } 57 return initNewCmd(ctx, cmd) 58 }